期刊列表
This commit is contained in:
@@ -672,6 +672,7 @@ export default {
|
|||||||
index: 'JournalManagementAll',
|
index: 'JournalManagementAll',
|
||||||
title: this.$t('sidebar.journalList')
|
title: this.$t('sidebar.journalList')
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
index: 'GroupClassification',
|
index: 'GroupClassification',
|
||||||
title: this.$t('sidebar.GroupClassification')
|
title: this.$t('sidebar.GroupClassification')
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
const mediaUrl = '/public/';
|
const mediaUrl = '/public/';
|
||||||
const baseUrl = '/';
|
const baseUrl = '/';
|
||||||
|
|
||||||
|
|
||||||
//本地(正式环境 )
|
//本地(正式环境 )
|
||||||
|
|
||||||
// const mediaUrl = 'https://submission.tmrjournals.com/public/';
|
// const mediaUrl = 'https://submission.tmrjournals.com/public/';
|
||||||
@@ -21,6 +22,7 @@ const baseUrl = '/';
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
baseUrl,
|
baseUrl,
|
||||||
mediaUrl
|
mediaUrl,
|
||||||
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -23,6 +23,21 @@ const en = {
|
|||||||
reviewers: 'reviewer',
|
reviewers: 'reviewer',
|
||||||
admin: 'admin'
|
admin: 'admin'
|
||||||
},
|
},
|
||||||
|
articleListEditor:{
|
||||||
|
Continuouspublication:'Continuous publication',
|
||||||
|
publishInfo:'Are you sure you want to publish this article?',
|
||||||
|
type:'Type',
|
||||||
|
edit:'Edit',
|
||||||
|
add:'Add',
|
||||||
|
journalType0:'Continuous publication',
|
||||||
|
journalType1:'Monthly',
|
||||||
|
journalType3:'Quarterly',
|
||||||
|
coverImage:'Cover Image',
|
||||||
|
JournalInstallment:'Journal Installment',
|
||||||
|
status:'Status',
|
||||||
|
delete:'Delete',
|
||||||
|
deleteInfo: 'Are you sure you want to delete this journal installment?',
|
||||||
|
},
|
||||||
menu: {
|
menu: {
|
||||||
main: 'Personal Center',
|
main: 'Personal Center',
|
||||||
PublicationSystem: 'Publication System',
|
PublicationSystem: 'Publication System',
|
||||||
@@ -44,6 +59,7 @@ const en = {
|
|||||||
JournalCitationAnalysis: 'Journal Citation Analysis',
|
JournalCitationAnalysis: 'Journal Citation Analysis',
|
||||||
Academicresourcesupervise: 'Academic Resource Supervise',
|
Academicresourcesupervise: 'Academic Resource Supervise',
|
||||||
Classificationmanagement: 'Classification Management',
|
Classificationmanagement: 'Classification Management',
|
||||||
|
ClassificationmanagementInfo: 'Classification',
|
||||||
publicationsupervise: 'Publication Supervise',
|
publicationsupervise: 'Publication Supervise',
|
||||||
papersubmit: 'Paper Submit',
|
papersubmit: 'Paper Submit',
|
||||||
ArticlePublication: 'Article Publication',
|
ArticlePublication: 'Article Publication',
|
||||||
@@ -238,6 +254,7 @@ const en = {
|
|||||||
journalArticleCount: 'Journal Article Count',
|
journalArticleCount: 'Journal Article Count',
|
||||||
managingDirector: 'Managing Director',
|
managingDirector: 'Managing Director',
|
||||||
GroupClassification: 'Group List',
|
GroupClassification: 'Group List',
|
||||||
|
JournalInstallment : 'Journal Installment',
|
||||||
},
|
},
|
||||||
home: {
|
home: {
|
||||||
authortop: 'Author guide',
|
authortop: 'Author guide',
|
||||||
|
|||||||
@@ -22,6 +22,20 @@ const zh = {
|
|||||||
editor: '编辑',
|
editor: '编辑',
|
||||||
reviewers: '审稿人',
|
reviewers: '审稿人',
|
||||||
admin: '管理员'
|
admin: '管理员'
|
||||||
|
}, articleListEditor: {
|
||||||
|
Continuouspublication: '连续出刊',
|
||||||
|
publishInfo: '您确定要发布这篇文章吗?',
|
||||||
|
type: '类型',
|
||||||
|
edit: '编辑',
|
||||||
|
add: '新增',
|
||||||
|
journalType0: '连续出刊',
|
||||||
|
journalType1: '月刊',
|
||||||
|
journalType3: '季刊',
|
||||||
|
coverImage: '封面图',
|
||||||
|
JournalInstallment: '期刊分期',
|
||||||
|
status: '状态',
|
||||||
|
delete: '删除',
|
||||||
|
deleteInfo: '您确定要删除该期刊分期吗?',
|
||||||
},
|
},
|
||||||
menu: {
|
menu: {
|
||||||
main: '个人中心',
|
main: '个人中心',
|
||||||
@@ -44,7 +58,7 @@ const zh = {
|
|||||||
userManSys6: '推广记录',
|
userManSys6: '推广记录',
|
||||||
JournalCitationAnalysis: '期刊引文分析',
|
JournalCitationAnalysis: '期刊引文分析',
|
||||||
Academicresourcesupervise: '学术资源监督',
|
Academicresourcesupervise: '学术资源监督',
|
||||||
Classificationmanagement: '分类管理',
|
Classificationmanagement: '分类管理', ClassificationmanagementInfo: '分类管理',
|
||||||
publicationsupervise: '出版监督',
|
publicationsupervise: '出版监督',
|
||||||
papersubmit: '论文提交',
|
papersubmit: '论文提交',
|
||||||
ArticlePublication: '文章发表',
|
ArticlePublication: '文章发表',
|
||||||
@@ -73,7 +87,7 @@ const zh = {
|
|||||||
BindInfo: '将<span style="color:#006699;font-weight:700;">【绑定】</span>该分类, 是否继续?',
|
BindInfo: '将<span style="color:#006699;font-weight:700;">【绑定】</span>该分类, 是否继续?',
|
||||||
UnBindInfo: '将<span style="color:red;font-weight:700;">【解绑】</span>该分类, 是否继续?',
|
UnBindInfo: '将<span style="color:red;font-weight:700;">【解绑】</span>该分类, 是否继续?',
|
||||||
Tips: '提示',
|
Tips: '提示',
|
||||||
AssociatedJournal:'关联期刊',
|
AssociatedJournal: '关联期刊',
|
||||||
},
|
},
|
||||||
|
|
||||||
JournalCitationAnalysis: {
|
JournalCitationAnalysis: {
|
||||||
@@ -83,7 +97,7 @@ const zh = {
|
|||||||
article: '文章数量',
|
article: '文章数量',
|
||||||
citeNum: '引用数量',
|
citeNum: '引用数量',
|
||||||
articleNum: '文章数量',
|
articleNum: '文章数量',
|
||||||
ArticleInfo: '文章信息', website: '网站',
|
ArticleInfo: '文章信息', website: '网站',
|
||||||
email: '邮箱',
|
email: '邮箱',
|
||||||
abbr: '缩写',
|
abbr: '缩写',
|
||||||
edit: '编辑',
|
edit: '编辑',
|
||||||
@@ -233,6 +247,7 @@ const zh = {
|
|||||||
journalArticleCount: '期刊文章计数总结',
|
journalArticleCount: '期刊文章计数总结',
|
||||||
managingDirector: '总经理',
|
managingDirector: '总经理',
|
||||||
GroupClassification: '集团列表',
|
GroupClassification: '集团列表',
|
||||||
|
JournalInstallment: '分期列表',
|
||||||
|
|
||||||
},
|
},
|
||||||
home: {
|
home: {
|
||||||
|
|||||||
@@ -0,0 +1,943 @@
|
|||||||
|
<template>
|
||||||
|
<div style="width: 100%; height: 100%; padding: 0px 20px; box-sizing: border-box">
|
||||||
|
<div style="overflow: hidden;">
|
||||||
|
<!-- <el-select v-model="currentJournal.journal_id" @change="selectJournal" placeholder="Please select journal" style="width: 500px">
|
||||||
|
<el-option v-for="item in jourList" :key="item.journal_id" :label="item.title" :value="item.journal_id">
|
||||||
|
<span style="float: left">{{ item.title }}</span>
|
||||||
|
|
||||||
|
|
||||||
|
<span
|
||||||
|
|
||||||
|
style="
|
||||||
|
float: right;
|
||||||
|
height: 20px;
|
||||||
|
line-height: 20px;
|
||||||
|
border-radius: 4px;
|
||||||
|
color: #8492a6;
|
||||||
|
font-size: 12px;
|
||||||
|
padding: 0 5px;
|
||||||
|
margin-top: calc((34px - 20px) / 2);
|
||||||
|
color: #fff;
|
||||||
|
background: #006699;
|
||||||
|
border: 1px solid #006699;
|
||||||
|
display: inline-block;
|
||||||
|
"
|
||||||
|
v-if="item.cycle == 0"
|
||||||
|
> {{ $t('articleListEditor.Continuouspublication') }}</span
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select> -->
|
||||||
|
|
||||||
|
<el-button type="primary" icon="el-icon-plus" @click="openEditJournal" style="float: right;"> {{ $t('articleListEditor.add') }}</el-button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- <el-button type="primary" @click="horizontal = !horizontal">切换tree方向</el-button> -->
|
||||||
|
|
||||||
|
<div style="padding: 20px 0; box-sizing: border-box">
|
||||||
|
<el-table
|
||||||
|
height="84vh"
|
||||||
|
:data="JournalList"
|
||||||
|
class="table"
|
||||||
|
ref="multipleTable"
|
||||||
|
header-cell-class-name="table-header"
|
||||||
|
empty-text="New messages (0)"
|
||||||
|
|
||||||
|
>
|
||||||
|
<!-- <el-table-column type="expand" width="30">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
|
||||||
|
</template>
|
||||||
|
</el-table-column> -->
|
||||||
|
<!-- <el-table-column label="No." align="center" width="50">
|
||||||
|
<template slot-scope="scop">
|
||||||
|
{{ scop.$index + 1 }}
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</el-table-column> -->
|
||||||
|
<el-table-column prop="title" label="title">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<p>
|
||||||
|
<span style="font-size: 16px !important; font-weight: 700 !important; color: rgb(51, 51, 51)">
|
||||||
|
{{
|
||||||
|
scope.row.stage_year +
|
||||||
|
' Vol.' +
|
||||||
|
scope.row.stage_vol +
|
||||||
|
' issue.' +
|
||||||
|
scope.row.stage_no +
|
||||||
|
scope.row.stage_pagename +
|
||||||
|
scope.row.stage_page
|
||||||
|
}}
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="stage_icon" :label="$t('articleListEditor.coverImage')" width="200">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<div style="width: 80px; height: auto; padding: 4px; box-sizing: border-box">
|
||||||
|
<img
|
||||||
|
style="width: 100%; height: 100%"
|
||||||
|
:src="scope.row.stage_icon ? `https://www.tmrjournals.com/public/${scope.row.stage_icon}` : ''"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
|
||||||
|
<el-table-column label=" " width="100" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
|
||||||
|
<el-button size="mini" @click="handleDelete(scope.row)" type="danger" plain icon="el-icon-delete">
|
||||||
|
{{ $t('articleListEditor.delete') }}</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
<el-dialog :title="$t('GroupClassification.add')" :visible.sync="editDialogVisible1" width="600px" :append-to-body="true" :before-close="handleEditClose">
|
||||||
|
<el-form ref="detail_form" :model="detailForm" :rules="rules" label-width="165px" >
|
||||||
|
<el-form-item label="Journal :">
|
||||||
|
<p style="display: flex; align-items: center; justify-content: space-between">
|
||||||
|
<span>{{ journal.title }}</span>
|
||||||
|
<span
|
||||||
|
style="
|
||||||
|
border-radius: 2px;
|
||||||
|
padding: 0 4px;
|
||||||
|
line-height: 24px;
|
||||||
|
height: 24px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
border: 1px solid rgb(0, 102, 153) !important;
|
||||||
|
color: rgb(0, 102, 153);
|
||||||
|
font-size: 12px;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
{{ getCycle(journal.cycle) }}
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Cover Image :" prop="image">
|
||||||
|
<el-upload
|
||||||
|
class="avatar-uploader"
|
||||||
|
ref="upIconIMg"
|
||||||
|
:action="baseUrl + 'journalmaster/journal/up_file'"
|
||||||
|
:show-file-list="false"
|
||||||
|
name="journalicon"
|
||||||
|
:on-success="handleAvatarSuccess2"
|
||||||
|
:on-error="handleAvatarError2"
|
||||||
|
:before-upload="beforeAvatarUpload2"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
v-if="detailForm.stage_icon"
|
||||||
|
:src="detailForm.stage_icon ? `https://www.tmrjournals.com/public/${detailForm.stage_icon}` : ''"
|
||||||
|
class="avatar"
|
||||||
|
accept=".png,.jpg"
|
||||||
|
/>
|
||||||
|
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
||||||
|
</el-upload>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="Year :" prop="stage_year">
|
||||||
|
<!-- <el-date-picker
|
||||||
|
v-model="detailForm.stage_year"
|
||||||
|
type="year"
|
||||||
|
> </el-date-picker>-->
|
||||||
|
<el-input v-model="detailForm.stage_year" clearable></el-input>
|
||||||
|
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Vol :" prop="stage_vol">
|
||||||
|
<el-input v-model="detailForm.stage_vol" clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="No :" prop="stage_no">
|
||||||
|
<el-input v-model="detailForm.stage_no" clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Page :" prop="stage_page">
|
||||||
|
<el-input v-model="detailForm.stage_page" placeholder='15–20' clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Issue Date :" prop="issue_date">
|
||||||
|
|
||||||
|
|
||||||
|
<el-input v-model="detailForm.issue_date" placeholder='01 May 2025' clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</el-form>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="handleEditClose()">{{ $t('GroupClassification.cancel') }}</el-button>
|
||||||
|
<el-button type="primary" @click="handleEdit()">{{ $t('GroupClassification.submit') }}</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import OrgTree from '@/components/org-tree';
|
||||||
|
// import commonclass from './class.vue';
|
||||||
|
// import commonAgreement from './agreement.vue';
|
||||||
|
// import commonJournalInstallment from './JournalInstallment.vue';
|
||||||
|
import bus from '@/components/common/bus';
|
||||||
|
export default {
|
||||||
|
name: 'app',
|
||||||
|
props: ['urlList', 'source', 'journal'],
|
||||||
|
components: {
|
||||||
|
OrgTree
|
||||||
|
// commonclass,
|
||||||
|
// commonAgreement,
|
||||||
|
// commonJournalInstallment
|
||||||
|
},
|
||||||
|
directives: {
|
||||||
|
focus: {
|
||||||
|
inserted: function (el) {
|
||||||
|
el.querySelector('input').focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
baseUrl: this.Common.baseUrl,
|
||||||
|
activeNames: [],
|
||||||
|
jourList: [],
|
||||||
|
detailForm: {},
|
||||||
|
|
||||||
|
currentJournalStage: {},
|
||||||
|
|
||||||
|
expands: [],
|
||||||
|
edit_id: localStorage.getItem('U_id'),
|
||||||
|
AssociatedJournalList: [],
|
||||||
|
JournalList: [],
|
||||||
|
drawer: false,
|
||||||
|
drawerAgreement: false,
|
||||||
|
bd: true,
|
||||||
|
ruleForm: {
|
||||||
|
major_title: '',
|
||||||
|
nickname: ''
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
stage_year: [{
|
||||||
|
required: true,
|
||||||
|
message: 'Please enter year',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
stage_vol: [{
|
||||||
|
required: true,
|
||||||
|
message: 'Please enter vol',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
stage_no: [{
|
||||||
|
required: true,
|
||||||
|
message: 'Please enter no',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
stage_page: [{
|
||||||
|
required: true,
|
||||||
|
message: 'Please enter page',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
issue_date: [{
|
||||||
|
required: true,
|
||||||
|
message: 'Please select date',
|
||||||
|
trigger: 'blur'
|
||||||
|
}],
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
editDialogVisible1: false,
|
||||||
|
dialogVisible: false,
|
||||||
|
dialogVisible2: false,
|
||||||
|
isShowF: false,
|
||||||
|
data: {
|
||||||
|
id: 'abc0',
|
||||||
|
label: this.$t('sidebar.GroupClassification'),
|
||||||
|
leave: 1, // tree层级
|
||||||
|
children: []
|
||||||
|
},
|
||||||
|
horizontal: true,
|
||||||
|
collapsable: true,
|
||||||
|
isEdit: 0,
|
||||||
|
currentTreeData: {},
|
||||||
|
currentJournal: {},
|
||||||
|
lastId: 11,
|
||||||
|
labelClassName: 'bg-white'
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
dialogVisible: {
|
||||||
|
handler(newV, oldV) {
|
||||||
|
if (newV == false) {
|
||||||
|
this.ruleForm = {};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async created() {
|
||||||
|
this.init();
|
||||||
|
},
|
||||||
|
async activated() {
|
||||||
|
this.init();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async getJourList() {
|
||||||
|
this.$api
|
||||||
|
.post(this.urlList.getJournalList, {
|
||||||
|
// username: this.query.username
|
||||||
|
})
|
||||||
|
.then(async (res) => {
|
||||||
|
this.jourList = res;
|
||||||
|
// this.currentJournal = this.jourList[0];
|
||||||
|
await this.getDate();
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
async selectJournal(v) {
|
||||||
|
console.log('e at line 155:', v);
|
||||||
|
this.tableData = [];
|
||||||
|
this.currentJournal = this.jourList.find((e) => e.journal_id == v);
|
||||||
|
|
||||||
|
await this.getDate();
|
||||||
|
},
|
||||||
|
async init() {
|
||||||
|
|
||||||
|
await this.getJourList();
|
||||||
|
},
|
||||||
|
beforeAvatarUpload2(file) {
|
||||||
|
const isLt2M = file.size / 1024 / 1024 < 1;
|
||||||
|
if (!isLt2M) {
|
||||||
|
this.$message.error('Picture size cannot exceed 1M!');
|
||||||
|
}
|
||||||
|
return isLt2M;
|
||||||
|
},
|
||||||
|
handleAvatarError2(res, file) {
|
||||||
|
// this.$message.error(res);
|
||||||
|
},
|
||||||
|
//上传图片
|
||||||
|
handleAvatarSuccess2(res, file) {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.detailForm.stage_icon = res.upurl;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleDelete(row) {
|
||||||
|
this.$confirm(this.$t('articleListEditor.deleteInfo'), this.$t('citeList.tip'), {
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
this.$api
|
||||||
|
.post('api/Journal/delJournalStage', { journal_stage_id: row.journal_stage_id })
|
||||||
|
.then((res) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.$message.success(res.msg);
|
||||||
|
this.init();
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
this.$message.error(err);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
},
|
||||||
|
handleEdit() {
|
||||||
|
this.$refs.detail_form.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
this.$api
|
||||||
|
.post('api/Journal/creatJournalStage', this.detailForm)
|
||||||
|
.then((res) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.$message.success('Success!');
|
||||||
|
this.editDialogVisible1 = false;
|
||||||
|
this.getDate();
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.$message.error('error submit!!');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
selectType(val) {
|
||||||
|
console.log('val at line 193:', val);
|
||||||
|
},
|
||||||
|
getCycle(val) {
|
||||||
|
var text = '';
|
||||||
|
switch (val) {
|
||||||
|
case 0:
|
||||||
|
text = this.$t('articleListEditor.journalType0');
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
text = this.$t('articleListEditor.journalType1');
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
text = this.$t('articleListEditor.journalType3');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return text;
|
||||||
|
},
|
||||||
|
expndChange(row, expandedRows) {
|
||||||
|
if (expandedRows.length) {
|
||||||
|
this.expands = [];
|
||||||
|
if (row) {
|
||||||
|
this.expands.push(row.journal_id); // 每次push进去的是每行的ID
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.expands = []; // 默认不展开
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getRowKeys(row) {
|
||||||
|
return row.journal_id;
|
||||||
|
},
|
||||||
|
changeBind(b) {
|
||||||
|
var BindInfo = b.selected == 0 ? this.$t('GroupClassification.BindInfo') : this.$t('GroupClassification.UnBindInfo');
|
||||||
|
this.$confirm(`${this.$t('GroupClassification.JournalBindInfo')} ${b.title}${BindInfo}`, '提示', {
|
||||||
|
confirmButtonText: this.$t('GroupClassification.submit'),
|
||||||
|
dangerouslyUseHTMLString: true,
|
||||||
|
cancelButtonText: this.$t('GroupClassification.cancel'),
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
var url = '';
|
||||||
|
if (b.selected == 1) {
|
||||||
|
url = this.urlList.unbind;
|
||||||
|
} else if (b.selected == 0) {
|
||||||
|
url = this.urlList.bind;
|
||||||
|
}
|
||||||
|
url;
|
||||||
|
console.log('url at line 278:', url);
|
||||||
|
this.$api
|
||||||
|
.post(url, {
|
||||||
|
journal_issn: b.issn,
|
||||||
|
major_id: this.currentTreeData.major_id
|
||||||
|
})
|
||||||
|
.then(async (res) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.$message({
|
||||||
|
type: 'success',
|
||||||
|
message: res.msg
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.$message({
|
||||||
|
type: 'error',
|
||||||
|
message: res.msg
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
this.$nextTick(async () => {
|
||||||
|
setTimeout(async () => {
|
||||||
|
await this.getAssociatedJournalList();
|
||||||
|
}, 200);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
// this.$message({
|
||||||
|
// type: 'info',
|
||||||
|
// message: this.$t('GroupClassification.cancel')
|
||||||
|
// });
|
||||||
|
});
|
||||||
|
},
|
||||||
|
handleClose() {
|
||||||
|
this.drawer = false;
|
||||||
|
this.currentJournalStage = {};
|
||||||
|
},
|
||||||
|
handleCloseJournalInstallment() {
|
||||||
|
this.drawerJournalInstallment = false;
|
||||||
|
this.currentJournalStage = {};
|
||||||
|
},
|
||||||
|
handleEditClose() {
|
||||||
|
this.editDialogVisible1 = false;
|
||||||
|
this.currentJournalStage = {};
|
||||||
|
this.detailForm = {};
|
||||||
|
},
|
||||||
|
handleAgreementClose() {
|
||||||
|
this.drawerAgreement = false;
|
||||||
|
this.currentJournalStage = {};
|
||||||
|
},
|
||||||
|
getAssociatedJournalList() {
|
||||||
|
this.$api
|
||||||
|
.post(this.urlList.AssociatedJournalList, {
|
||||||
|
major_id: this.currentTreeData.major_id
|
||||||
|
})
|
||||||
|
.then(async (res) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.AssociatedJournalList = res.data.list;
|
||||||
|
console.log('this.AssociatedJournalList at line 234:', this.AssociatedJournalList);
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
this.$message.error(err);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
openEditJournal() {
|
||||||
|
var that = this;
|
||||||
|
// this.currentJournalStage = data;
|
||||||
|
this.detailForm = {
|
||||||
|
issn: this.currentJournal.issn,
|
||||||
|
// stage_icon: '11.jpg',
|
||||||
|
|
||||||
|
// stage_icon: data.stage_icon,
|
||||||
|
// stage_vol: data.stage_vol,
|
||||||
|
// stage_year: data.stage_year,
|
||||||
|
// stage_no: data.stage_no,
|
||||||
|
// stage_page: data.stage_page,
|
||||||
|
// issue_date: data.issue_date,
|
||||||
|
// stage_icon: data.stage_icon
|
||||||
|
};
|
||||||
|
this.editDialogVisible1 = true;
|
||||||
|
// this.$nextTick(() => {
|
||||||
|
// that.$refs.commonClassRef.init();
|
||||||
|
// });
|
||||||
|
},
|
||||||
|
openJournalAgreement(data) {
|
||||||
|
var that = this;
|
||||||
|
this.currentJournal = data;
|
||||||
|
this.drawerAgreement = true;
|
||||||
|
this.$nextTick(() => {
|
||||||
|
that.$refs.commonAgreementRef.init();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
renameKeys(obj, oldKey, newKey) {
|
||||||
|
if (obj[oldKey]) {
|
||||||
|
obj[newKey] = obj[oldKey];
|
||||||
|
delete obj[oldKey];
|
||||||
|
}
|
||||||
|
for (let k in obj) {
|
||||||
|
if (typeof obj[k] === 'object') {
|
||||||
|
this.renameKeys(obj[k], oldKey, newKey);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 获取数据
|
||||||
|
async getDate() {
|
||||||
|
const loading = this.$loading({
|
||||||
|
lock: true,
|
||||||
|
text: 'Loading...',
|
||||||
|
spinner: 'el-icon-loading',
|
||||||
|
background: 'rgba(0, 0, 0, 0.7)'
|
||||||
|
});
|
||||||
|
this.$api
|
||||||
|
.post('api/Web/getStages', {
|
||||||
|
journal_id: this.journal.journal_id
|
||||||
|
})
|
||||||
|
.then(async (res) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.JournalList = res.data.stages;
|
||||||
|
loading.close();
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg);
|
||||||
|
loading.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$forceUpdate();
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
this.$message.error(err);
|
||||||
|
loading.close();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 增加千分位
|
||||||
|
numFormatter(num) {
|
||||||
|
let res = num;
|
||||||
|
if (num && num !== null) {
|
||||||
|
res = num.toString().replace(/\d+/, (n) => {
|
||||||
|
return n.replace(/(\d)(?=(\d{3})+$)/g, ($1) => {
|
||||||
|
return $1 + ',';
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
},
|
||||||
|
cccc(a, b) {
|
||||||
|
// console.log(a);
|
||||||
|
// console.log(b);
|
||||||
|
},
|
||||||
|
mouseWheelDia() {
|
||||||
|
// bugfix 鼠标移入弹层,滚动鼠标不能缩放bug
|
||||||
|
this.isShowF = false;
|
||||||
|
},
|
||||||
|
Mouseover() {
|
||||||
|
// 鼠标移入缩放icon
|
||||||
|
this.bd = false;
|
||||||
|
},
|
||||||
|
Mouseout() {
|
||||||
|
// 鼠标移出缩放icon
|
||||||
|
this.bd = true;
|
||||||
|
},
|
||||||
|
clearDialog() {
|
||||||
|
// 关闭添加/编辑/删除弹层
|
||||||
|
this.dialogVisible = false;
|
||||||
|
this.dialogVisible2 = false;
|
||||||
|
this.ruleForm.major_title = '';
|
||||||
|
},
|
||||||
|
addOrEdit(val) {
|
||||||
|
// 点击添加/编辑
|
||||||
|
// 新增val:0,编辑val:1
|
||||||
|
this.dialogVisible = true;
|
||||||
|
this.isEdit = val;
|
||||||
|
// eslint-disable-next-line eqeqeq
|
||||||
|
if (val == 1) {
|
||||||
|
// 编辑回显
|
||||||
|
this.ruleForm = {
|
||||||
|
major_title: this.currentTreeData.label,
|
||||||
|
major_sort: this.currentTreeData.major_sort,
|
||||||
|
major_id: this.currentTreeData.major_id,
|
||||||
|
nickname: this.currentTreeData.nickname
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
this.ruleForm.pid = this.currentTreeData.major_id;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async confirm() {
|
||||||
|
// 添加/编辑的确定
|
||||||
|
this.$refs.ruleForm.validate(async (valid) => {
|
||||||
|
if (valid) {
|
||||||
|
if (this.isEdit == 1) {
|
||||||
|
// 编辑
|
||||||
|
// this.ruleForm.major_title =
|
||||||
|
// data.id = this.treeData.id;
|
||||||
|
// this.currentTreeData.label = data.label;
|
||||||
|
|
||||||
|
this.$api
|
||||||
|
.post(this.urlList.edit, {
|
||||||
|
major_title: this.ruleForm.major_title,
|
||||||
|
major_id: this.ruleForm.major_id,
|
||||||
|
major_sort: this.ruleForm.major_sort,
|
||||||
|
nickname: this.ruleForm.nickname
|
||||||
|
})
|
||||||
|
.then(async (res) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.$message({
|
||||||
|
type: 'success',
|
||||||
|
message: res.msg
|
||||||
|
});
|
||||||
|
this.clearDialog();
|
||||||
|
} else {
|
||||||
|
this.$message({
|
||||||
|
type: 'error',
|
||||||
|
message: res.msg
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 前端编辑数据
|
||||||
|
|
||||||
|
// loading.close();
|
||||||
|
} else {
|
||||||
|
this.$api
|
||||||
|
.post(this.urlList.add, {
|
||||||
|
major_title: this.ruleForm.major_title,
|
||||||
|
pid: this.ruleForm.pid,
|
||||||
|
major_sort: this.ruleForm.major_sort,
|
||||||
|
nickname: this.ruleForm.nickname
|
||||||
|
})
|
||||||
|
.then(async (res) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.$message({
|
||||||
|
type: 'success',
|
||||||
|
message: res.msg
|
||||||
|
});
|
||||||
|
this.clearDialog();
|
||||||
|
} else {
|
||||||
|
this.$message({
|
||||||
|
type: 'error',
|
||||||
|
message: res.msg
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// 添加
|
||||||
|
// 前端添加数据,需要自己生成子级id,可以传数据的时候把最后一级id传过来,进行累加
|
||||||
|
// data.id = this.lastId++;
|
||||||
|
// // data.level = this.currentTreeData.level + 1;
|
||||||
|
// data.label = this.ruleForm.major_title;
|
||||||
|
// data.expand = true;
|
||||||
|
// const render = (formData) => {
|
||||||
|
// formData.some((item) => {
|
||||||
|
// if (item.id === this.currentTreeData.id) {
|
||||||
|
// if (item.children) {
|
||||||
|
// item.children.push(data);
|
||||||
|
// } else {
|
||||||
|
// this.$set(item, 'children', [data]);
|
||||||
|
// }
|
||||||
|
// } else if (item.children) {
|
||||||
|
// render(item.children);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// };
|
||||||
|
// const arr = [this.data];
|
||||||
|
// render(arr);
|
||||||
|
// this.data = arr[0];
|
||||||
|
|
||||||
|
// loading.close();
|
||||||
|
}
|
||||||
|
this.$nextTick(async () => {
|
||||||
|
setTimeout(async () => {
|
||||||
|
await this.getDate();
|
||||||
|
}, 200);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// loading.close();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
del() {
|
||||||
|
this.dialogVisible2 = true;
|
||||||
|
},
|
||||||
|
async confimdelete() {
|
||||||
|
// 是否确定删除当前节点
|
||||||
|
// 前端删除 遍历原数据,删除匹配id数据
|
||||||
|
this.$api
|
||||||
|
.post(this.urlList.delete, {
|
||||||
|
major_id: this.currentTreeData.major_id
|
||||||
|
})
|
||||||
|
.then(async (res) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.$message({
|
||||||
|
type: 'success',
|
||||||
|
message: res.msg
|
||||||
|
});
|
||||||
|
this.clearDialog();
|
||||||
|
} else {
|
||||||
|
this.$message({
|
||||||
|
type: 'error',
|
||||||
|
message: res.msg
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$nextTick(async () => {
|
||||||
|
setTimeout(async () => {
|
||||||
|
await this.getDate();
|
||||||
|
}, 200);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
// const deleteData = (data) => {
|
||||||
|
// data.some((item, i) => {
|
||||||
|
// if (item.id === this.currentTreeData.id) {
|
||||||
|
// data.splice(i, 1);
|
||||||
|
// } else if (item.children) {
|
||||||
|
// deleteData(item.children);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// };
|
||||||
|
// const arr = [this.data];
|
||||||
|
// deleteData(arr);
|
||||||
|
// this.data = arr[0] ? arr[0] : {};
|
||||||
|
// this.dialogVisible2 = false;
|
||||||
|
// this.$message({
|
||||||
|
// type: 'success',
|
||||||
|
// message: '节点删除成功!'
|
||||||
|
// });
|
||||||
|
},
|
||||||
|
onMouseover(e, data) {
|
||||||
|
var collapse = localStorage.getItem('collapse');
|
||||||
|
var width = Number(e.clientX - (!collapse || collapse == 'false' ? 260 : 40));
|
||||||
|
|
||||||
|
// 鼠标移入树节点
|
||||||
|
this.currentTreeData = data; // 鼠标移入,该节点的所有数据
|
||||||
|
|
||||||
|
this.isShowF = true;
|
||||||
|
var floating = document.getElementsByClassName('floating')[0];
|
||||||
|
if (floating) {
|
||||||
|
floating.style.left = width + 'px';
|
||||||
|
floating.style.top = e.clientY - 80 + 'px';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onMouseout(e, data) {
|
||||||
|
// 鼠标移出树节点
|
||||||
|
this.isShowF = false;
|
||||||
|
},
|
||||||
|
renderContent(h, data) {
|
||||||
|
return data.label;
|
||||||
|
},
|
||||||
|
onExpand(e, data) {
|
||||||
|
// 节点展开收缩
|
||||||
|
// eslint-disable-next-line eqeqeq
|
||||||
|
if (data.leave == 1 && data.expand == true) {
|
||||||
|
// bugfix
|
||||||
|
var dom = document.getElementById('ddd');
|
||||||
|
(dom.style.top = '50%'), (dom.style.left = '8%');
|
||||||
|
}
|
||||||
|
if ('expand' in data) {
|
||||||
|
data.expand = !data.expand;
|
||||||
|
if (!data.expand && data.children) {
|
||||||
|
this.collapse(data.children);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.$set(data, 'expand', true);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
collapse(list) {
|
||||||
|
list.forEach((child) => {
|
||||||
|
if (child.expand) {
|
||||||
|
child.expand = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
child.children && this.collapse(child.children);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
toggleExpand(data, val) {
|
||||||
|
// 节点默认全部展开
|
||||||
|
var _this = this;
|
||||||
|
// console.log(data);
|
||||||
|
if (Array.isArray(data)) {
|
||||||
|
data.forEach(function (item) {
|
||||||
|
_this.$set(item, 'expand', val);
|
||||||
|
if (item.children) {
|
||||||
|
_this.toggleExpand(item.children, val);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.$set(data, 'expand', val);
|
||||||
|
if (data.children) {
|
||||||
|
_this.toggleExpand(data.children, val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.floating {
|
||||||
|
background: rgba(0, 0, 0, 0.7);
|
||||||
|
box-shadow: rgba(0, 0, 0, 0.2);
|
||||||
|
width: auto;
|
||||||
|
// height: 45px;
|
||||||
|
line-height: 24px;
|
||||||
|
// display: flex;
|
||||||
|
// justify-content: space-around;
|
||||||
|
position: absolute;
|
||||||
|
color: #fff;
|
||||||
|
border-radius: 5px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
transition: all 0.3s;
|
||||||
|
z-index: 999;
|
||||||
|
font-size: 12px;
|
||||||
|
padding: 6px;
|
||||||
|
span {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<style lang="less">
|
||||||
|
.addOrEditDia,
|
||||||
|
.delDia {
|
||||||
|
padding: 14px 18px 10px 18px;
|
||||||
|
border-radius: 4px !important;
|
||||||
|
.el-dialog__header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 20px 0 !important;
|
||||||
|
}
|
||||||
|
.el-dialog__body {
|
||||||
|
padding: 0;
|
||||||
|
padding-top: 20px;
|
||||||
|
// margin-top: 37px;
|
||||||
|
}
|
||||||
|
.el-dialog__footer {
|
||||||
|
padding: 27px 0 9px 0 !important;
|
||||||
|
}
|
||||||
|
.el-dialog__headerbtn {
|
||||||
|
position: static !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.bg-white {
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
.bg-orange {
|
||||||
|
background-color: orange;
|
||||||
|
}
|
||||||
|
.bg-gold {
|
||||||
|
background-color: gold;
|
||||||
|
}
|
||||||
|
.bg-gray {
|
||||||
|
background-color: gray;
|
||||||
|
}
|
||||||
|
.bg-lightpink {
|
||||||
|
background-color: lightpink;
|
||||||
|
}
|
||||||
|
.bg-chocolate {
|
||||||
|
background-color: chocolate;
|
||||||
|
}
|
||||||
|
.bg-tomato {
|
||||||
|
background-color: tomato;
|
||||||
|
}
|
||||||
|
.outBox {
|
||||||
|
height: calc(100% - 100px) !important;
|
||||||
|
margin-top: 10px;
|
||||||
|
width: calc(100% - 40px) !important;
|
||||||
|
overflow: auto !important;
|
||||||
|
}
|
||||||
|
.tableExpand1 {
|
||||||
|
margin-top: 5px;
|
||||||
|
padding: 2px 0;
|
||||||
|
// padding-left: 40px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
.title {
|
||||||
|
display: inline-block;
|
||||||
|
// width: 140px;
|
||||||
|
margin-right: 10px;
|
||||||
|
font-weight: 700 !important;
|
||||||
|
color: #333333de;
|
||||||
|
}
|
||||||
|
.item {
|
||||||
|
// margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.avatar-uploader .el-upload {
|
||||||
|
border: 1px dashed #d9d9d9;
|
||||||
|
border-radius: 6px;
|
||||||
|
cursor: pointer;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar-uploader_small {
|
||||||
|
height: 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar-uploader .el-upload:hover {
|
||||||
|
border-color: #409eff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar-uploader-icon {
|
||||||
|
font-size: 28px;
|
||||||
|
color: #8c939d;
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
line-height: 120px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar-uploader_small .el-upload {
|
||||||
|
width: 80px;
|
||||||
|
height: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar-uploader_small .avatar-uploader-icon {
|
||||||
|
line-height: 80px;
|
||||||
|
margin-left: -30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar {
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<commonTable :urlList="urlList">
|
<commonTable :urlList="urlList" source="all">
|
||||||
|
|
||||||
</commonTable>
|
</commonTable>
|
||||||
|
|
||||||
|
|||||||
@@ -10,12 +10,26 @@
|
|||||||
header-cell-class-name="table-header"
|
header-cell-class-name="table-header"
|
||||||
empty-text="New messages (0)"
|
empty-text="New messages (0)"
|
||||||
:row-key="getRowKeys"
|
:row-key="getRowKeys"
|
||||||
:expand-row-keys="expands"
|
|
||||||
@expand-change="expndChange"
|
|
||||||
>
|
>
|
||||||
<el-table-column type="expand" width="30">
|
<!-- <el-table-column type="expand" width="30">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div class="tableExpand">
|
|
||||||
|
</template>
|
||||||
|
</el-table-column> -->
|
||||||
|
<!-- <el-table-column label="No." align="center" width="50">
|
||||||
|
<template slot-scope="scop">
|
||||||
|
{{ scop.$index + 1 }}
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</el-table-column> -->
|
||||||
|
<el-table-column prop="title" label="title">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<p>
|
||||||
|
<span style="font-size: 16px !important; font-weight: 700 !important; color: rgb(51, 51, 51)">
|
||||||
|
{{ scope.row.title }}</span
|
||||||
|
>
|
||||||
|
</p>
|
||||||
|
<div class="tableExpand1">
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<span class="title">{{ $t('JournalCitationAnalysis.abbr') }} :</span><span>{{ scope.row.abbr }}</span>
|
<span class="title">{{ $t('JournalCitationAnalysis.abbr') }} :</span><span>{{ scope.row.abbr }}</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -35,33 +49,85 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- <el-table-column label="No." align="center" width="50">
|
<!-- <el-table-column prop="img" :label="$t('articleListEditor.coverImage')" width="100">
|
||||||
<template slot-scope="scop">
|
|
||||||
{{ scop.$index + 1 }}
|
|
||||||
</template>
|
|
||||||
|
|
||||||
</el-table-column> -->
|
|
||||||
<el-table-column prop="title" label="title">
|
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span style="font-weight: 700 !important; color: rgb(51, 51, 51)"> {{ scope.row.title }}</span>
|
<div style="width: 80px; height: auto; padding: 4px; box-sizing: border-box">
|
||||||
|
<img
|
||||||
|
style="width: 100%; height: 100%"
|
||||||
|
src="https://www.tmrjournals.com/public/journalstage/20240108/ffa43b1303c13d9dfa007dedc1903229.jpg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column> -->
|
||||||
|
<el-table-column prop="issn" width="190" :label="$t('articleListEditor.type')">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<p style="color: rgb(0, 102, 153); font-weight: 700">
|
||||||
|
{{ getCycle(scope.row.cycle) }}
|
||||||
|
</p>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="issn" width="160" label="issn"></el-table-column>
|
<el-table-column prop="issn" width="160" label="issn"></el-table-column>
|
||||||
|
|
||||||
<el-table-column label=" " width="200" align="center">
|
<el-table-column label=" " width="180" align="center">
|
||||||
<template slot-scope="scope"
|
<template slot-scope="scope">
|
||||||
|
<p
|
||||||
|
@click="
|
||||||
|
openEditJournal({
|
||||||
|
...scope.row
|
||||||
|
})
|
||||||
|
"
|
||||||
|
style="
|
||||||
|
background-color: #006699 !important;
|
||||||
|
border-color: #006699 !important;
|
||||||
|
cursor: pointer;
|
||||||
|
padding: 2px 2px;
|
||||||
|
font-weight: bold;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
color: #fff;
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<span
|
<i class="el-icon-edit" style="color: #fff"></i> {{ $t('articleListEditor.edit') }}
|
||||||
|
</p>
|
||||||
|
<p
|
||||||
|
@click="
|
||||||
|
openJournalInstallment({
|
||||||
|
...scope.row
|
||||||
|
})
|
||||||
|
"
|
||||||
|
style="
|
||||||
|
background-color: #008cc9;
|
||||||
|
color: #fff;
|
||||||
|
cursor: pointer;
|
||||||
|
padding: 2px 2px;
|
||||||
|
font-weight: bold;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<i class="el-icon-s-grid" style="color: #fff"></i> {{ $t('articleListEditor.JournalInstallment') }}
|
||||||
|
</p> <p
|
||||||
@click="
|
@click="
|
||||||
openJournal({
|
openJournal({
|
||||||
...scope.row
|
...scope.row
|
||||||
})
|
})
|
||||||
"
|
"
|
||||||
style="background-color: #c2d4ff; color: #4665b0; cursor: pointer;padding: 2px 2px;font-weight: bold;;border-radius: 4px;"
|
style=" background-color: #c2d4ff;
|
||||||
|
color: #4665b0;
|
||||||
|
|
||||||
|
cursor: pointer;
|
||||||
|
padding: 2px 2px;
|
||||||
|
font-weight: bold;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<i class="el-icon-connection" style="color: #4665b0;"></i> {{ $t('menu.Classificationmanagement') }}
|
<i class="el-icon-connection" style="color: #4665b0"></i> {{ $t('menu.ClassificationmanagementInfo') }}
|
||||||
</span>
|
</p>
|
||||||
<span
|
|
||||||
|
|
||||||
|
<p
|
||||||
@click="
|
@click="
|
||||||
openJournalAgreement({
|
openJournalAgreement({
|
||||||
...scope.row
|
...scope.row
|
||||||
@@ -70,13 +136,59 @@
|
|||||||
style="color: #006699 !important; cursor: pointer; margin-left: 6px"
|
style="color: #006699 !important; cursor: pointer; margin-left: 6px"
|
||||||
>
|
>
|
||||||
<i class="el-icon-document"></i> {{ $t('sidebar.userManSys11') }}
|
<i class="el-icon-document"></i> {{ $t('sidebar.userManSys11') }}
|
||||||
</span>
|
</p>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
|
<el-dialog :title="$t('GroupClassification.edit')" :visible.sync="editDialogVisible" width="600px" :before-close="handleEditClose">
|
||||||
|
<el-form ref="detail_form" :model="detailForm" :rules="rules" label-width="165px">
|
||||||
|
<el-form-item label="Journal :">
|
||||||
|
<p style="display: flex;align-items: center;justify-content: space-between;">
|
||||||
|
<span>{{ detailForm.title }}</span>
|
||||||
|
<span style="border-radius: 4px;padding: 0 4px;line-height: 24px;height: 24px;box-sizing: border-box;border: 1px solid rgb(0, 102, 153) !important; color: rgb(0, 102, 153);font-size: 12px">
|
||||||
|
{{ getCycle(currentJournal.cycle) }}
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item label="Cover Image :" prop="image">
|
||||||
|
<el-upload class="avatar-uploader" ref="upIconIMg"
|
||||||
|
:action="baseUrl+'journalmaster/journal/up_file'" :show-file-list="false" name="journalicon"
|
||||||
|
:on-success="handleAvatarSuccess2" :on-error="handleAvatarError2"
|
||||||
|
:before-upload="beforeAvatarUpload2" >
|
||||||
|
<img v-if="detailForm.journalicon" :src="detailForm.journalicon" class="avatar" accept=".png,.jpg">
|
||||||
|
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
||||||
|
|
||||||
|
</el-upload>
|
||||||
|
</el-form-item> -->
|
||||||
|
<el-form-item label="Level :" prop="level">
|
||||||
|
<el-select v-model="detailForm.level" placeholder="Please select">
|
||||||
|
<el-option v-for="item in levelList" :key="item.title" :label="item.title" :value="item.title"> </el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Email :" prop="email">
|
||||||
|
<el-input v-model="detailForm.email"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Password :" prop="epassword">
|
||||||
|
<el-input v-model="detailForm.epassword"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Initial review score :" prop="kfen">
|
||||||
|
<el-input-number v-model="detailForm.kfen" :min="0" v-if="source == 'all'"></el-input-number>
|
||||||
|
<span v-else>{{ detailForm.kfen }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 简介 -->
|
||||||
|
<el-form-item label="Introduction :" prop="scope">
|
||||||
|
<el-input type="textarea" rows="5" v-model="detailForm.scope"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="handleEditClose()">{{ $t('GroupClassification.cancel') }}</el-button>
|
||||||
|
<el-button type="primary" @click="handleEdit()">{{ $t('GroupClassification.submit') }}</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
<el-drawer
|
<el-drawer
|
||||||
|
append-to-body
|
||||||
destroy-on-close
|
destroy-on-close
|
||||||
:title="$t('GroupClassification.Journal') + ' : ' + currentJournal.title"
|
:title="$t('GroupClassification.Journal') + ' : ' + currentJournal.title"
|
||||||
:visible.sync="drawer"
|
:visible.sync="drawer"
|
||||||
@@ -87,6 +199,18 @@
|
|||||||
<commonclass ref="commonClassRef" :journal="currentJournal" :urlList="urlList"></commonclass>
|
<commonclass ref="commonClassRef" :journal="currentJournal" :urlList="urlList"></commonclass>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
<el-drawer
|
<el-drawer
|
||||||
|
destroy-on-close
|
||||||
|
:append-to-body="true"
|
||||||
|
:title="$t('GroupClassification.Journal') + ' : ' + currentJournal.title"
|
||||||
|
:visible.sync="drawerJournalInstallment"
|
||||||
|
direction="rtl"
|
||||||
|
:before-close="handleCloseJournalInstallment"
|
||||||
|
size="90%"
|
||||||
|
>
|
||||||
|
<commonJournalInstallment ref="commonJournalInstallmentRef" :journal="currentJournal" :urlList="urlList"></commonJournalInstallment>
|
||||||
|
</el-drawer>
|
||||||
|
<el-drawer
|
||||||
|
append-to-body
|
||||||
destroy-on-close
|
destroy-on-close
|
||||||
:title="$t('GroupClassification.Journal') + ' : ' + currentJournal.title"
|
:title="$t('GroupClassification.Journal') + ' : ' + currentJournal.title"
|
||||||
:visible.sync="drawerAgreement"
|
:visible.sync="drawerAgreement"
|
||||||
@@ -103,14 +227,16 @@
|
|||||||
import OrgTree from '@/components/org-tree';
|
import OrgTree from '@/components/org-tree';
|
||||||
import commonclass from './class.vue';
|
import commonclass from './class.vue';
|
||||||
import commonAgreement from './agreement.vue';
|
import commonAgreement from './agreement.vue';
|
||||||
|
import commonJournalInstallment from '../JournalInstallment/index.vue';
|
||||||
import bus from '@/components/common/bus';
|
import bus from '@/components/common/bus';
|
||||||
export default {
|
export default {
|
||||||
name: 'app',
|
name: 'app',
|
||||||
props: ['urlList'],
|
props: ['urlList', 'source'],
|
||||||
components: {
|
components: {
|
||||||
OrgTree,
|
OrgTree,
|
||||||
commonclass,
|
commonclass,
|
||||||
commonAgreement
|
commonAgreement,
|
||||||
|
commonJournalInstallment
|
||||||
},
|
},
|
||||||
directives: {
|
directives: {
|
||||||
focus: {
|
focus: {
|
||||||
@@ -121,12 +247,26 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
baseUrl: this.Common.baseUrl,
|
||||||
activeNames: [],
|
activeNames: [],
|
||||||
expands: [],
|
detailForm: {},
|
||||||
|
levelList: [
|
||||||
|
{
|
||||||
|
title: 'A'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'B'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'C'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
expands: [],
|
||||||
edit_id: localStorage.getItem('U_id'),
|
edit_id: localStorage.getItem('U_id'),
|
||||||
AssociatedJournalList: [],
|
AssociatedJournalList: [],
|
||||||
JournalList: [],
|
JournalList: [],
|
||||||
drawer: false,
|
drawer: false,
|
||||||
|
drawerJournalInstallment: false,
|
||||||
drawerAgreement: false,
|
drawerAgreement: false,
|
||||||
bd: true,
|
bd: true,
|
||||||
ruleForm: {
|
ruleForm: {
|
||||||
@@ -134,9 +274,52 @@ export default {
|
|||||||
nickname: ''
|
nickname: ''
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
major_title: [{ required: true, message: this.$t('GroupClassification.enter'), trigger: 'change' }]
|
level: [
|
||||||
// nickname: [{ required: true, message: this.$t('GroupClassification.enter'), trigger: 'change' }]
|
{
|
||||||
|
required: true,
|
||||||
|
message: 'please select level',
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
epassword: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: 'Please input re-password',
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
kfen: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: 'Please input initial review score',
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
// scope: [{
|
||||||
|
// required: true,
|
||||||
|
// message: 'Please input journal introduction',
|
||||||
|
// trigger: 'blur'
|
||||||
|
// }],
|
||||||
|
email: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: 'Please input email',
|
||||||
|
trigger: 'blur'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
validator: function (rule, value, callback) {
|
||||||
|
if (/^[-.-_A-Za-z0-9]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(value) == false) {
|
||||||
|
callback(new Error('Please enter the correct email format'));
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
|
editDialogVisible: false,
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
dialogVisible2: false,
|
dialogVisible2: false,
|
||||||
isShowF: false,
|
isShowF: false,
|
||||||
@@ -173,19 +356,77 @@ export default {
|
|||||||
await this.getDate();
|
await this.getDate();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
beforeAvatarUpload2(file) {
|
||||||
|
const isLt2M = file.size / 1024 / 1024 < 1;
|
||||||
|
if (!isLt2M) {
|
||||||
|
this.$message.error('Picture size cannot exceed 1M!');
|
||||||
|
}
|
||||||
|
return isLt2M;
|
||||||
|
},
|
||||||
|
handleAvatarError2(res, file) {
|
||||||
|
// this.$message.error(res);
|
||||||
|
},
|
||||||
|
//上传图片
|
||||||
|
handleAvatarSuccess2(res, file) {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.detailForm.journalicon = res.upurl;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleEdit() {
|
||||||
|
this.$refs.detail_form.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
this.$api
|
||||||
|
.post('api/Journal/editJournal', this.detailForm)
|
||||||
|
.then((res) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.$message.success('Change Success!');
|
||||||
|
this.editDialogVisible = false;
|
||||||
|
this.getDate();
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.$message.error('error submit!!');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
selectType(val) {
|
||||||
|
console.log('val at line 193:', val);
|
||||||
|
},
|
||||||
|
getCycle(val) {
|
||||||
|
var text = '';
|
||||||
|
switch (val) {
|
||||||
|
case 0:
|
||||||
|
text = this.$t('articleListEditor.journalType0');
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
text = this.$t('articleListEditor.journalType1');
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
text = this.$t('articleListEditor.journalType3');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return text;
|
||||||
|
},
|
||||||
expndChange(row, expandedRows) {
|
expndChange(row, expandedRows) {
|
||||||
if (expandedRows.length) {
|
if (expandedRows.length) {
|
||||||
this.expands = []
|
this.expands = [];
|
||||||
if (row) {
|
if (row) {
|
||||||
this.expands.push(row.journal_id) // 每次push进去的是每行的ID
|
this.expands.push(row.journal_id); // 每次push进去的是每行的ID
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.expands = [] // 默认不展开
|
this.expands = []; // 默认不展开
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getRowKeys(row) {
|
getRowKeys(row) {
|
||||||
return row.journal_id
|
return row.journal_id;
|
||||||
},
|
},
|
||||||
changeBind(b) {
|
changeBind(b) {
|
||||||
var BindInfo = b.selected == 0 ? this.$t('GroupClassification.BindInfo') : this.$t('GroupClassification.UnBindInfo');
|
var BindInfo = b.selected == 0 ? this.$t('GroupClassification.BindInfo') : this.$t('GroupClassification.UnBindInfo');
|
||||||
this.$confirm(`${this.$t('GroupClassification.JournalBindInfo')} ${b.title}${BindInfo}`, '提示', {
|
this.$confirm(`${this.$t('GroupClassification.JournalBindInfo')} ${b.title}${BindInfo}`, '提示', {
|
||||||
@@ -239,6 +480,15 @@ export default {
|
|||||||
this.drawer = false;
|
this.drawer = false;
|
||||||
this.currentJournal = {};
|
this.currentJournal = {};
|
||||||
},
|
},
|
||||||
|
handleCloseJournalInstallment() {
|
||||||
|
this.drawerJournalInstallment = false;
|
||||||
|
this.currentJournal = {};
|
||||||
|
},
|
||||||
|
handleEditClose() {
|
||||||
|
this.editDialogVisible = false;
|
||||||
|
this.currentJournal = {};
|
||||||
|
this.detailForm = {};
|
||||||
|
},
|
||||||
handleAgreementClose() {
|
handleAgreementClose() {
|
||||||
this.drawerAgreement = false;
|
this.drawerAgreement = false;
|
||||||
this.currentJournal = {};
|
this.currentJournal = {};
|
||||||
@@ -268,6 +518,40 @@ export default {
|
|||||||
that.$refs.commonClassRef.init();
|
that.$refs.commonClassRef.init();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
openJournalInstallment(data) {
|
||||||
|
// this.$router.push({
|
||||||
|
// path: '/JournalInstallment',
|
||||||
|
// query: {
|
||||||
|
// journal_id: data.journal_id
|
||||||
|
// }
|
||||||
|
|
||||||
|
// })
|
||||||
|
|
||||||
|
|
||||||
|
var that = this;
|
||||||
|
this.currentJournal = data;
|
||||||
|
this.drawerJournalInstallment = true;
|
||||||
|
this.$nextTick(() => {
|
||||||
|
that.$refs.commonJournalInstallmentRef.init();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
openEditJournal(data) {
|
||||||
|
var that = this;
|
||||||
|
this.currentJournal = data;
|
||||||
|
this.detailForm = {
|
||||||
|
journal_id: data.journal_id,
|
||||||
|
title: data.title,
|
||||||
|
level: data.level,
|
||||||
|
email: data.email,
|
||||||
|
epassword: data.epassword,
|
||||||
|
kfen: data.kfen,
|
||||||
|
scope: data.scope
|
||||||
|
};
|
||||||
|
this.editDialogVisible = true;
|
||||||
|
// this.$nextTick(() => {
|
||||||
|
// that.$refs.commonClassRef.init();
|
||||||
|
// });
|
||||||
|
},
|
||||||
openJournalAgreement(data) {
|
openJournalAgreement(data) {
|
||||||
var that = this;
|
var that = this;
|
||||||
this.currentJournal = data;
|
this.currentJournal = data;
|
||||||
@@ -638,19 +922,62 @@ export default {
|
|||||||
width: calc(100% - 40px) !important;
|
width: calc(100% - 40px) !important;
|
||||||
overflow: auto !important;
|
overflow: auto !important;
|
||||||
}
|
}
|
||||||
.tableExpand {
|
.tableExpand1 {
|
||||||
padding: 10px 20px;
|
margin-top: 5px;
|
||||||
padding-left: 40px;
|
padding: 2px 0;
|
||||||
|
// padding-left: 40px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
.title {
|
.title {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
// width: 140px;
|
// width: 140px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
font-weight: 700 !important;
|
font-weight: 700 !important;
|
||||||
color: rgb(51, 51, 51);
|
color: #333333de;
|
||||||
}
|
}
|
||||||
.item {
|
.item {
|
||||||
margin-bottom: 10px;
|
// margin-bottom: 4px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.avatar-uploader .el-upload {
|
||||||
|
border: 1px dashed #d9d9d9;
|
||||||
|
border-radius: 6px;
|
||||||
|
cursor: pointer;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar-uploader_small {
|
||||||
|
height: 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar-uploader .el-upload:hover {
|
||||||
|
border-color: #409eff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar-uploader-icon {
|
||||||
|
font-size: 28px;
|
||||||
|
color: #8c939d;
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
line-height: 120px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar-uploader_small .el-upload {
|
||||||
|
width: 80px;
|
||||||
|
height: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar-uploader_small .avatar-uploader-icon {
|
||||||
|
line-height: 80px;
|
||||||
|
margin-left: -30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar {
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<commonTable :urlList="urlList">
|
<commonTable :urlList="urlList" source="index">
|
||||||
|
|
||||||
</commonTable>
|
</commonTable>
|
||||||
|
|
||||||
|
|||||||
@@ -1,340 +1,516 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="handle-box">
|
<div class="handle-box">
|
||||||
<el-select v-model="query.issn" @change="getNoralDate" placeholder="Please select journal"
|
<el-select v-model="query.issn" @change="selectJournal" placeholder="Please select journal" style="width: 500px">
|
||||||
style="width: 500px;">
|
<el-option v-for="item in jourList" :key="item.issn" :label="item.title" :value="item.issn">
|
||||||
<el-option v-for="item in jourList" :key="item.issn" :label="item.title" :value="item.issn">
|
<span style="float: left">{{ item.title }}</span>
|
||||||
</el-option>
|
<span
|
||||||
</el-select>
|
style="
|
||||||
</div>
|
float: right;
|
||||||
|
height: 20px;
|
||||||
|
line-height: 20px;
|
||||||
|
border-radius: 4px;
|
||||||
|
color: #8492a6;
|
||||||
|
font-size: 12px;
|
||||||
|
padding: 0 5px;
|
||||||
|
margin-top: calc((34px - 20px) / 2);
|
||||||
|
color: #fff ;
|
||||||
|
background: #006699 ;
|
||||||
|
border: 1px solid #006699 ;
|
||||||
|
display: inline-block;
|
||||||
|
"
|
||||||
|
v-if="item.cycle == 0"
|
||||||
|
>{{ $t('articleListEditor.Continuouspublication') }}</span
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select><span
|
||||||
|
style="
|
||||||
|
float: right;
|
||||||
|
height: 20px;
|
||||||
|
line-height: 20px;
|
||||||
|
border-radius: 4px;
|
||||||
|
color: #8492a6;
|
||||||
|
font-size: 12px;
|
||||||
|
padding: 0 5px;
|
||||||
|
margin-top: calc((34px - 20px) / 2);
|
||||||
|
color: #fff ;
|
||||||
|
background: #006699 ;
|
||||||
|
border: 1px solid #006699 ;
|
||||||
|
display: inline-block;
|
||||||
|
"
|
||||||
|
v-if="currentJournal.cycle == 0"
|
||||||
|
>{{ $t('articleListEditor.Continuouspublication') }}</span
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div v-for="(item,index) in tableData">
|
<template v-if="currentJournal.cycle != 0">
|
||||||
<div style="margin: 30px 0 20px 10px;">
|
<div v-for="(item, index) in tableData">
|
||||||
<b style="letter-spacing: -0.5px;">
|
<div style="margin: 30px 0 20px 10px">
|
||||||
{{item.stage_year}} Vol.{{item.stage_vol}} issue.{{item.stage_no}}
|
<b style="letter-spacing: -0.5px"> {{ item.stage_year }} Vol.{{ item.stage_vol }} issue.{{ item.stage_no }} </b>
|
||||||
</b>
|
<span style="color: #888; margin-left: 20px; font-size: 14px">({{ item.articles.length }} articles in total)</span>
|
||||||
<span style="color: #888;margin-left: 20px;font-size: 14px;">({{item.articles.length}} articles in
|
<el-button @click="Chukan(item)" type="warning" plain size="mini" style="margin-left: 20px">
|
||||||
total)</span>
|
Issue in advance
|
||||||
<el-button @click="Chukan(item)" type="warning" plain size="mini" style="margin-left: 20px;">
|
</el-button>
|
||||||
Issue in advance
|
</div>
|
||||||
</el-button>
|
<div v-for="(item, index) in item.articles" class="actList">
|
||||||
</div>
|
<span>{{ item.npp }}.</span>
|
||||||
<div v-for="(item,index) in item.articles" class="actList">
|
<font @click="lookView(item)">{{ item.title }}</font>
|
||||||
<span>{{item.npp}}.</span>
|
<!-- <span style="margin-left: 30px;color: #aaa;">sort:</span>
|
||||||
<font @click="lookView(item)">{{item.title}}</font>
|
|
||||||
<!-- <span style="margin-left: 30px;color: #aaa;">sort:</span>
|
|
||||||
<b class="sort">{{item.sort}}</b>
|
<b class="sort">{{item.sort}}</b>
|
||||||
<i class="el-icon-edit ediCon" @click="changSort(item)"></i> -->
|
<i class="el-icon-edit ediCon" @click="changSort(item)"></i> -->
|
||||||
</div>
|
</div>
|
||||||
<p style="height: 1px;background-color: #eee;width: 100%;margin-top: 30px;"></p>
|
<p style="height: 1px; background-color: #eee; width: 100%; margin-top: 30px"></p>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="tableData.length==0" style="margin: 40px 0 10px 10px;">
|
<div v-if="tableData.length == 0" style="margin: 40px 0 10px 10px">No Article</div>
|
||||||
No Article
|
</template>
|
||||||
</div>
|
<template v-else-if="currentJournal.cycle == 0">
|
||||||
|
<div v-for="(item, index) in tableData">
|
||||||
|
<div style="margin: 30px 0 20px 10px">
|
||||||
|
<b style="letter-spacing: -0.5px"> {{ item.stage_year }} </b>
|
||||||
|
<span style="color: #888; margin-left: 20px; font-size: 14px">({{ item.articles.length }} articles in total)</span>
|
||||||
|
</div>
|
||||||
|
<div v-for="(item, index) in item.articles" class="actList" style="overflow: hidden">
|
||||||
|
<div style="float: left; width: calc(100% - 140px)">
|
||||||
|
<span>{{ index + 1 }}.</span>
|
||||||
|
<font @click="lookView(item)">{{ item.title }}</font>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<el-button @click="Chukan0(item)" type="warning" plain size="mini" style="float: right"> Issue in advance </el-button>
|
||||||
|
<!-- <span style="margin-left: 30px;color: #aaa;">sort:</span>
|
||||||
|
<b class="sort">{{item.sort}}</b>
|
||||||
|
<i class="el-icon-edit ediCon" @click="changSort(item)"></i> -->
|
||||||
|
</div>
|
||||||
|
<p style="height: 1px; background-color: #eee; width: 100%; margin-top: 30px"></p>
|
||||||
|
</div>
|
||||||
|
<div v-if="tableData.length == 0" style="margin: 40px 0 10px 10px">No Article</div>
|
||||||
|
</template>
|
||||||
|
<!-- 权重弹出框 -->
|
||||||
|
<el-dialog title="Change Sort" :visible.sync="sortVisible" width="500px">
|
||||||
|
<el-form ref="remark" :model="sortForm" label-width="70px">
|
||||||
|
<el-form-item label="Title :">
|
||||||
|
<p style="line-height: 20px; margin-top: 6px">{{ sortForm.title }}</p>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="Sort :">
|
||||||
|
<el-input-number v-model="sortForm.sort" :min="0"></el-input-number>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="sortVisible = false">Cancel</el-button>
|
||||||
|
<el-button type="primary" @click="saveSort">Save</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
<!-- 权重弹出框 -->
|
<!-- 数据库进度条弹出框 -->
|
||||||
<el-dialog title="Change Sort" :visible.sync="sortVisible" width="500px">
|
<el-dialog title="" :close-on-click-modal="false" :show-close="false" :visible.sync="pubVisible" width="400px">
|
||||||
<el-form ref="remark" :model="sortForm" label-width="70px">
|
<div style="margin: 0 20px" v-if="re_finsh == 1">
|
||||||
<el-form-item label="Title :">
|
<img src="../../assets/img/Fidget-spinner.gif" style="width: 80px; float: left; margin: 10px 50px 150px 20px" />
|
||||||
<p style="line-height: 20px;margin-top: 6px;">{{sortForm.title}}</p>
|
<div style="float: left; height: 150px">
|
||||||
</el-form-item>
|
<transition name="el-fade-in-linear" v-for="(item, index) in referData">
|
||||||
<el-form-item label="Sort :">
|
<div v-show="item.ishow" class="transition-box ref_font">
|
||||||
<el-input-number v-model="sortForm.sort" :min="0"></el-input-number>
|
{{ item.name }}
|
||||||
</el-form-item>
|
<img src="../../assets/img/Fidget-finsh.png" style="margin-left: 10px; vertical-align: text-top" />
|
||||||
</el-form>
|
</div>
|
||||||
<span slot="footer" class="dialog-footer">
|
</transition>
|
||||||
<el-button @click="sortVisible = false">Cancel</el-button>
|
</div>
|
||||||
<el-button type="primary" @click="saveSort">Save</el-button>
|
<br clear="both" />
|
||||||
</span>
|
</div>
|
||||||
</el-dialog>
|
<div v-if="re_finsh == 0" style="text-align: center">
|
||||||
|
<img src="../../assets/img/Fidget-right.png" alt="" style="width: 120px" />
|
||||||
|
<p style="font-size: 16px; margin: 20px 0 50px 0">Successfully uploaded the database!</p>
|
||||||
<!-- 数据库进度条弹出框 -->
|
</div>
|
||||||
<el-dialog title="" :close-on-click-modal="false" :show-close="false" :visible.sync="pubVisible" width="400px">
|
</el-dialog>
|
||||||
<div style="margin: 0 20px;" v-if="re_finsh==1">
|
</div>
|
||||||
<img src="../../assets/img/Fidget-spinner.gif"
|
|
||||||
style="width: 80px;float: left;margin:10px 50px 150px 20px;">
|
|
||||||
<div style="float: left;height: 150px;">
|
|
||||||
<transition name="el-fade-in-linear" v-for="(item,index) in referData">
|
|
||||||
<div v-show="item.ishow" class="transition-box ref_font">
|
|
||||||
{{ item.name }}
|
|
||||||
<img src="../../assets/img/Fidget-finsh.png"
|
|
||||||
style="margin-left:10px;vertical-align: text-top;">
|
|
||||||
</div>
|
|
||||||
</transition>
|
|
||||||
</div>
|
|
||||||
<br clear="both">
|
|
||||||
</div>
|
|
||||||
<div v-if="re_finsh==0" style="text-align: center;">
|
|
||||||
<img src="../../assets/img/Fidget-right.png" alt="" style="width: 120px;">
|
|
||||||
<p style="font-size: 16px;margin: 20px 0 50px 0;">Successfully uploaded the database!</p>
|
|
||||||
</div>
|
|
||||||
</el-dialog>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import {
|
import { Loading, Select } from 'element-ui';
|
||||||
Loading
|
export default {
|
||||||
} from 'element-ui';
|
data() {
|
||||||
export default {
|
return {
|
||||||
data() {
|
baseUrl: this.Common.baseUrl,
|
||||||
return {
|
mediaUrl: this.Common.mediaUrl,
|
||||||
baseUrl: this.Common.baseUrl,
|
query: {
|
||||||
mediaUrl: this.Common.mediaUrl,
|
username: localStorage.getItem('U_name'),
|
||||||
query: {
|
issn: 0
|
||||||
username: localStorage.getItem('U_name'),
|
},
|
||||||
issn: 0,
|
currentJournal: {},
|
||||||
},
|
sortForm: {},
|
||||||
sortForm: {},
|
tableData: [],
|
||||||
tableData: [],
|
jourList: [],
|
||||||
jourList: [],
|
pubVisible: false,
|
||||||
pubVisible: false,
|
sortVisible: false,
|
||||||
sortVisible: false,
|
re_finsh: 1,
|
||||||
re_finsh: 1,
|
referData: [
|
||||||
referData: [{
|
{
|
||||||
name: 'J-Gate',
|
name: 'J-Gate',
|
||||||
state: '0',
|
state: '0',
|
||||||
ishow: false
|
ishow: false
|
||||||
}, {
|
},
|
||||||
name: '超星',
|
{
|
||||||
state: '0',
|
name: '超星',
|
||||||
ishow: false
|
state: '0',
|
||||||
}, {
|
ishow: false
|
||||||
name: '万方',
|
},
|
||||||
state: '0',
|
{
|
||||||
ishow: false
|
name: '万方',
|
||||||
}, {
|
state: '0',
|
||||||
name: '维普',
|
ishow: false
|
||||||
state: '0',
|
},
|
||||||
ishow: false
|
{
|
||||||
}, {
|
name: '维普',
|
||||||
name: 'PORTICO',
|
state: '0',
|
||||||
state: '0',
|
ishow: false
|
||||||
ishow: false
|
},
|
||||||
}, {
|
{
|
||||||
name: 'Cnki scholar',
|
name: 'PORTICO',
|
||||||
state: '0',
|
state: '0',
|
||||||
ishow: false
|
ishow: false
|
||||||
}],
|
},
|
||||||
};
|
{
|
||||||
},
|
name: 'Cnki scholar',
|
||||||
mounted() {
|
state: '0',
|
||||||
|
ishow: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {},
|
||||||
|
created() {
|
||||||
|
this.getDate();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 获取数据
|
||||||
|
getDate() {
|
||||||
|
this.$api
|
||||||
|
.post('api/Article/getJournal', {
|
||||||
|
// username: this.query.username
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
this.jourList = res;
|
||||||
|
if (localStorage.getItem('U_pointJour') == null) {
|
||||||
|
this.query.issn = this.jourList[0].issn;
|
||||||
|
|
||||||
},
|
this.currentJournal = this.jourList[0];
|
||||||
created() {
|
if (this.currentJournal.cycle != 0) {
|
||||||
this.getDate()
|
this.getNoralDate();
|
||||||
},
|
} else {
|
||||||
methods: {
|
this.getNoralDate0();
|
||||||
// 获取数据
|
}
|
||||||
getDate() {
|
} else {
|
||||||
this.$api
|
if (this.currentJournal.cycle != 0) {
|
||||||
.post('api/Article/getJournal', {
|
this.getNoralDate();
|
||||||
'username': this.query.username
|
} else {
|
||||||
})
|
this.getNoralDate0();
|
||||||
.then(res => {
|
}
|
||||||
this.jourList = res;
|
}
|
||||||
if (localStorage.getItem('U_pointJour') == null) {
|
})
|
||||||
this.query.issn = this.jourList[0].issn
|
.catch((err) => {
|
||||||
this.getNoralDate();
|
console.log(err);
|
||||||
} else {
|
});
|
||||||
this.getJourDate();
|
},
|
||||||
}
|
selectJournal(v) {
|
||||||
|
console.log('e at line 155:', v);
|
||||||
|
this.tableData = [];
|
||||||
|
this.currentJournal = this.jourList.find((e) => e.issn == v);
|
||||||
|
|
||||||
})
|
if (this.currentJournal.cycle != 0) {
|
||||||
.catch(err => {
|
this.getNoralDate();
|
||||||
console.log(err);
|
} else {
|
||||||
});
|
this.getNoralDate0();
|
||||||
},
|
}
|
||||||
|
},
|
||||||
|
getNoralDate0() {
|
||||||
|
const loading = this.$loading({
|
||||||
|
lock: true,
|
||||||
|
text: 'Loading...',
|
||||||
|
spinner: 'el-icon-loading',
|
||||||
|
background: 'rgba(0, 0, 0, 0.7)'
|
||||||
|
});
|
||||||
|
this.$api
|
||||||
|
.post('api/Journal/getJournalStageLX', {
|
||||||
|
journal_id: this.currentJournal.journal_id
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
console.log('res at line 175:', res);
|
||||||
|
var JournalStageLX = res.data.detail ? res.data.detail : {};
|
||||||
|
this.getNoralDate0Article(JournalStageLX, loading);
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
loading.close();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getNoralDate0Article(data, loading) {
|
||||||
|
this.$api
|
||||||
|
.post('api/Journal/getJournalStageArticles', {
|
||||||
|
journal_id: this.currentJournal.journal_id
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
console.log('res at line 175:', res);
|
||||||
|
if (res.data.list.length > 0) {
|
||||||
|
this.tableData = [{ ...data, articles: res.data.list }];
|
||||||
|
} else {
|
||||||
|
this.tableData = [];
|
||||||
|
}
|
||||||
|
this.$forceUpdate();
|
||||||
|
loading.close();
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
loading.close();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getNoralDate() {
|
||||||
|
const loading = this.$loading({
|
||||||
|
lock: true,
|
||||||
|
text: 'Loading...',
|
||||||
|
spinner: 'el-icon-loading',
|
||||||
|
background: 'rgba(0, 0, 0, 0.7)'
|
||||||
|
});
|
||||||
|
this.$api
|
||||||
|
.post('api/Publish/getOnlineList', {
|
||||||
|
issn: this.query.issn
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
this.tableData = res.data.stages;
|
||||||
|
loading.close();
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
loading.close();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
getNoralDate() {
|
getJourDate() {
|
||||||
const loading = this.$loading({
|
const loading = this.$loading({
|
||||||
lock: true,
|
lock: true,
|
||||||
text: 'Loading...',
|
text: 'Loading...',
|
||||||
spinner: 'el-icon-loading',
|
spinner: 'el-icon-loading',
|
||||||
background: 'rgba(0, 0, 0, 0.7)'
|
background: 'rgba(0, 0, 0, 0.7)'
|
||||||
});
|
});
|
||||||
this.$api
|
this.$api
|
||||||
.post('api/Publish/getOnlineList', {
|
.post('api/Journal/getJournalDetail', {
|
||||||
'issn': this.query.issn
|
journal_id: localStorage.getItem('U_pointJour')
|
||||||
})
|
})
|
||||||
.then(res => {
|
.then((res) => {
|
||||||
this.tableData = res.data.stages
|
this.query.issn = res.data.journal.issn;
|
||||||
loading.close();
|
localStorage.removeItem('U_pointJour');
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
console.log(err);
|
|
||||||
loading.close();
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
getJourDate() {
|
this.$api
|
||||||
const loading = this.$loading({
|
.post('api/Publish/getOnlineList', {
|
||||||
lock: true,
|
issn: this.query.issn
|
||||||
text: 'Loading...',
|
})
|
||||||
spinner: 'el-icon-loading',
|
.then((res) => {
|
||||||
background: 'rgba(0, 0, 0, 0.7)'
|
this.tableData = res.data.stages;
|
||||||
});
|
loading.close();
|
||||||
this.$api
|
})
|
||||||
.post('api/Journal/getJournalDetail', {
|
.catch((err) => {
|
||||||
'journal_id': localStorage.getItem('U_pointJour')
|
console.log(err);
|
||||||
})
|
loading.close();
|
||||||
.then(res => {
|
});
|
||||||
this.query.issn = res.data.journal.issn
|
})
|
||||||
localStorage.removeItem('U_pointJour')
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
loading.close();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 出刊
|
||||||
|
Chukan0(e) {
|
||||||
|
this.pubVisible = false;
|
||||||
|
this.re_finsh = false;
|
||||||
|
// 二次确认
|
||||||
|
let confirmText = [this.$t('articleListEditor.publishInfo')];
|
||||||
|
let newDatas = [];
|
||||||
|
let h = this.$createElement;
|
||||||
|
for (let i in confirmText) {
|
||||||
|
newDatas.push(h('p', null, confirmText[i]));
|
||||||
|
}
|
||||||
|
this.$confirm('Tips', {
|
||||||
|
title: 'Tips',
|
||||||
|
message: h('div', null, newDatas),
|
||||||
|
showCancelButton: true,
|
||||||
|
confirmButtonText: 'OK',
|
||||||
|
cancelButtonText: 'Cancel',
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
// 弹出框
|
||||||
|
this.pubVisible = true;
|
||||||
|
this.re_finsh = 1;
|
||||||
|
|
||||||
|
// 延迟效果
|
||||||
|
// 延迟效果
|
||||||
|
for (let i = 0; i < this.referData.length; i++) {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.referData[i].ishow = true;
|
||||||
|
}, 1000 * (i + 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
for (let i = 0; i < this.referData.length; i++) {
|
||||||
|
this.referData[i].ishow = false;
|
||||||
|
}
|
||||||
|
this.re_finsh = 0;
|
||||||
|
}, 1000 * (this.referData.length + 1) + 1000);
|
||||||
|
setTimeout(() => {
|
||||||
|
this.pubVisible = false;
|
||||||
|
|
||||||
this.$api
|
this.$api
|
||||||
.post('api/Publish/getOnlineList', {
|
.post('api/Journal/pushArticleToPublic', {
|
||||||
'issn': this.query.issn
|
article_id: e.article_id
|
||||||
})
|
})
|
||||||
.then(res => {
|
.then((res) => {
|
||||||
this.tableData = res.data.stages
|
console.log('res at line 330:', res);
|
||||||
loading.close();
|
|
||||||
})
|
if (res.code == 0) {
|
||||||
.catch(err => {
|
this.$message.success('Successfully!');
|
||||||
console.log(err);
|
setTimeout(()=>{
|
||||||
loading.close();
|
this.getNoralDate0();
|
||||||
});
|
},500)
|
||||||
})
|
|
||||||
.catch(err => {
|
} else {
|
||||||
console.log(err);
|
|
||||||
loading.close();
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
// 出刊
|
this.$message.error(res.data.msg);
|
||||||
Chukan(e) {
|
|
||||||
// 二次确认
|
|
||||||
let confirmText = ['Are you sure want to publish the stages of', e.stage_year + ' Vol.' + e
|
|
||||||
.stage_vol + ' issue.' + e.stage_no + ' ?'
|
|
||||||
]
|
|
||||||
let newDatas = []
|
|
||||||
let h = this.$createElement
|
|
||||||
for (let i in confirmText) {
|
|
||||||
newDatas.push(h('p', null, confirmText[i]))
|
|
||||||
}
|
|
||||||
this.$confirm(
|
|
||||||
'Tips', {
|
|
||||||
title: 'Tips',
|
|
||||||
message: h('div', null, newDatas),
|
|
||||||
showCancelButton: true,
|
|
||||||
confirmButtonText: 'OK',
|
|
||||||
cancelButtonText: 'Cancel',
|
|
||||||
type: 'warning'
|
|
||||||
}
|
|
||||||
).then(() => {
|
|
||||||
// 弹出框
|
|
||||||
this.pubVisible = true;
|
|
||||||
this.re_finsh = 1
|
|
||||||
|
|
||||||
// 延迟效果
|
}
|
||||||
for (let i = 0; i < this.referData.length; i++) {
|
})
|
||||||
setTimeout(() => {
|
.catch((err) => {
|
||||||
this.referData[i].ishow = true
|
// this.$message.error('Fail!');
|
||||||
}, 1000 * (i + 1));
|
this.$message.success('Successfully!');
|
||||||
}
|
this.getNoralDate0();
|
||||||
|
});
|
||||||
|
}, 1000 * (this.referData.length + 1) + 2000);
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
for (let i = 0; i < this.referData.length; i++) {
|
|
||||||
this.referData[i].ishow = false
|
|
||||||
}
|
|
||||||
this.re_finsh = 0
|
|
||||||
}, 1000 * (this.referData.length + 1) + 1000);
|
|
||||||
setTimeout(() => {
|
|
||||||
this.pubVisible = false
|
|
||||||
}, 1000 * (this.referData.length + 1) + 2000);
|
|
||||||
|
|
||||||
this.$api
|
})
|
||||||
.post('api/Publish/pushPublish', {
|
.catch(() => {});
|
||||||
'journal_stage_id': e.journal_stage_id
|
},
|
||||||
})
|
Chukan(e) {
|
||||||
.then(res => {
|
// 二次确认
|
||||||
this.$message.success('Successfully!');
|
let confirmText = [
|
||||||
this.getDate();
|
'Are you sure want to publish the stages of',
|
||||||
})
|
e.stage_year + ' Vol.' + e.stage_vol + ' issue.' + e.stage_no + ' ?'
|
||||||
.catch(err => {
|
];
|
||||||
// this.$message.error('Fail!');
|
let newDatas = [];
|
||||||
this.$message.success('Successfully!');
|
let h = this.$createElement;
|
||||||
this.getDate();
|
for (let i in confirmText) {
|
||||||
});
|
newDatas.push(h('p', null, confirmText[i]));
|
||||||
|
}
|
||||||
|
this.$confirm('Tips', {
|
||||||
|
title: 'Tips',
|
||||||
|
message: h('div', null, newDatas),
|
||||||
|
showCancelButton: true,
|
||||||
|
confirmButtonText: 'OK',
|
||||||
|
cancelButtonText: 'Cancel',
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
// 弹出框
|
||||||
|
this.pubVisible = true;
|
||||||
|
this.re_finsh = 1;
|
||||||
|
|
||||||
}).catch(() => {
|
// 延迟效果
|
||||||
|
for (let i = 0; i < this.referData.length; i++) {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.referData[i].ishow = true;
|
||||||
|
}, 1000 * (i + 1));
|
||||||
|
}
|
||||||
|
|
||||||
})
|
setTimeout(() => {
|
||||||
},
|
for (let i = 0; i < this.referData.length; i++) {
|
||||||
|
this.referData[i].ishow = false;
|
||||||
|
}
|
||||||
|
this.re_finsh = 0;
|
||||||
|
}, 1000 * (this.referData.length + 1) + 1000);
|
||||||
|
setTimeout(() => {
|
||||||
|
this.pubVisible = false;
|
||||||
|
}, 1000 * (this.referData.length + 1) + 2000);
|
||||||
|
|
||||||
// 跳转页面
|
this.$api
|
||||||
lookView(e) {
|
.post('api/Publish/pushPublish', {
|
||||||
let urlBlan = 'https://www.tmrjournals.cn/article.html?J_num=' + e.journal_id + '&a_id=' + e
|
journal_stage_id: e.journal_stage_id
|
||||||
.article_id
|
})
|
||||||
window.open(urlBlan, '_blank')
|
.then((res) => {
|
||||||
},
|
this.$message.success('Successfully!');
|
||||||
|
this.getDate();
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
// this.$message.error('Fail!');
|
||||||
|
this.$message.success('Successfully!');
|
||||||
|
this.getDate();
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
},
|
||||||
|
|
||||||
// 修改权重
|
// 跳转页面
|
||||||
changSort(e) {
|
lookView(e) {
|
||||||
this.sortForm = e
|
let urlBlan = 'https://www.tmrjournals.cn/article.html?J_num=' + e.journal_id + '&a_id=' + e.article_id;
|
||||||
this.sortVisible = true
|
window.open(urlBlan, '_blank');
|
||||||
},
|
},
|
||||||
|
|
||||||
// 保存权重
|
// 修改权重
|
||||||
saveSort() {
|
changSort(e) {
|
||||||
this.$api
|
this.sortForm = e;
|
||||||
.post('api/Publish/editArticle', this.sortForm)
|
this.sortVisible = true;
|
||||||
.then(res => {
|
},
|
||||||
if (res.code == 0) {
|
|
||||||
this.sortVisible = false
|
|
||||||
this.$message.success('Successfully!');
|
|
||||||
this.getDate();
|
|
||||||
} else {
|
|
||||||
this.$message.error(res.msg);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
this.$message.error(err);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
}
|
// 保存权重
|
||||||
}
|
saveSort() {
|
||||||
|
this.$api
|
||||||
|
.post('api/Publish/editArticle', this.sortForm)
|
||||||
|
.then((res) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.sortVisible = false;
|
||||||
|
this.$message.success('Successfully!');
|
||||||
|
this.getDate();
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
this.$message.error(err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.handle-box {
|
.handle-box {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.actList {
|
.actList {
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
line-height: 28px;
|
line-height: 28px;
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
color: #333;
|
color: #333;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
.actList font:hover {
|
||||||
|
cursor: pointer;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
.actList font:hover {
|
.actList b.sort {
|
||||||
cursor: pointer;
|
margin-left: 10px;
|
||||||
text-decoration: underline;
|
color: #006699;
|
||||||
}
|
}
|
||||||
|
|
||||||
.actList b.sort {
|
.actList i.ediCon {
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
color: #006699;
|
color: #006699;
|
||||||
}
|
}
|
||||||
|
|
||||||
.actList i.ediCon {
|
.actList i.ediCon:hover {
|
||||||
margin-left: 10px;
|
cursor: pointer;
|
||||||
color: #006699;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
.actList i.ediCon:hover {
|
.ref_font {
|
||||||
cursor: pointer;
|
margin-bottom: 15px;
|
||||||
text-decoration: underline;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ref_font {
|
|
||||||
margin-bottom: 15px;
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -830,6 +830,13 @@ export default new Router({
|
|||||||
title: 'Group List'
|
title: 'Group List'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/JournalInstallment', //分期列表
|
||||||
|
component: () => import('../components/page/JournalManagement/JournalInstallment/index.vue'),
|
||||||
|
meta: {
|
||||||
|
title: 'Journal Installment'
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/JournalManagement', //用户列表
|
path: '/JournalManagement', //用户列表
|
||||||
component: () => import('../components/page/JournalManagement/JournalManagement/index.vue'),
|
component: () => import('../components/page/JournalManagement/JournalManagement/index.vue'),
|
||||||
|
|||||||
Reference in New Issue
Block a user