html
This commit is contained in:
@@ -113,6 +113,7 @@ const en = {
|
||||
edit: 'Edit',
|
||||
level: 'Level',
|
||||
editorinchief: 'Editor In Chief',
|
||||
journal_topic: 'Research areas',
|
||||
|
||||
},
|
||||
|
||||
|
||||
@@ -105,6 +105,7 @@ const zh = {
|
||||
edit: '编辑',
|
||||
level: '水平',
|
||||
editorinchief: '总编辑',
|
||||
journal_topic: '研究领域',
|
||||
|
||||
|
||||
info: '以下数据为', wos: 'Wos',
|
||||
|
||||
@@ -46,6 +46,9 @@
|
||||
<div class="item">
|
||||
<span class="title">{{ $t('JournalCitationAnalysis.level') }} :</span><span>{{ scope.row.level }}</span>
|
||||
</div>
|
||||
<div class="item" v-if="scope.row.journal_topic">
|
||||
<span class="title">{{ $t('JournalCitationAnalysis.journal_topic') }} :</span><span>{{ scope.row.journal_topic }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -192,6 +195,25 @@
|
||||
<el-input-number v-model="detailForm.fee" :min="0" v-if="source == 'all'"></el-input-number>
|
||||
<span v-else>{{ detailForm.fee }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="Research areas :" prop="ResearchAreas">
|
||||
<el-button @click="addArea" size="mini" type="primary" plain style="position: absolute; right: 0; margin-left: 10px"
|
||||
>+ Add</el-button
|
||||
>
|
||||
<div style="padding-top: 40px">
|
||||
<div
|
||||
v-for="(domain, index) in detailForm.areas"
|
||||
:key="index"
|
||||
style="display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px"
|
||||
>
|
||||
<el-input v-model="detailForm.areas[index]" size="mini" clearable></el-input>
|
||||
<i
|
||||
class="el-icon-delete-solid"
|
||||
@click.prevent="removeArea(index)"
|
||||
style="margin-left: 10px; font-size: 22px; color: red"
|
||||
></i>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<!-- 简介 -->
|
||||
<el-form-item label="Introduction :" prop="scope">
|
||||
<el-input type="textarea" rows="5" v-model="detailForm.scope"></el-input>
|
||||
@@ -375,6 +397,13 @@ export default {
|
||||
await this.getDate();
|
||||
},
|
||||
methods: {
|
||||
addArea() {
|
||||
this.detailForm.areas.push('');
|
||||
},
|
||||
// 删除一个区域
|
||||
removeArea(index) {
|
||||
this.detailForm.areas.splice(index, 1);
|
||||
},
|
||||
beforeAvatarUpload2(file) {
|
||||
const isLt2M = file.size / 1024 / 1024 < 1;
|
||||
if (!isLt2M) {
|
||||
@@ -392,10 +421,12 @@ export default {
|
||||
}
|
||||
},
|
||||
handleEdit() {
|
||||
|
||||
|
||||
this.$refs.detail_form.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$api
|
||||
.post('api/Journal/editJournal', this.detailForm)
|
||||
.post('api/Journal/editJournal', {...this.detailForm,journal_topic:this.detailForm.areas&&this.detailForm.areas.length>0?this.detailForm.areas.toString():''})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('Change Success!');
|
||||
@@ -564,7 +595,8 @@ export default {
|
||||
epassword: data.epassword,
|
||||
kfen: data.kfen,
|
||||
fee: data.fee,
|
||||
scope: data.scope
|
||||
scope: data.scope,
|
||||
areas: data.journal_topic?data.journal_topic.split(','):[''],
|
||||
};
|
||||
this.editDialogVisible = true;
|
||||
// this.$nextTick(() => {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -149,7 +149,7 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="Topics :">
|
||||
<p v-for="item in topListName">{{ item }}</p>
|
||||
<el-button type="warning" @click="topicVisible = true" size="mini" style="margin-top: 5px">Change topics</el-button>
|
||||
<!-- <el-button type="warning" @click="topicVisible = true" size="mini" style="margin-top: 5px">Change topics</el-button> -->
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
@@ -194,7 +194,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<!-- 删除 -->
|
||||
<el-button
|
||||
<!-- <el-button
|
||||
v-show="item.dropdownShow"
|
||||
class="choose_btn"
|
||||
size="mini"
|
||||
@@ -202,11 +202,11 @@
|
||||
plain
|
||||
@click="deleteTree(item.article_id)"
|
||||
>Delete
|
||||
</el-button>
|
||||
</el-button> -->
|
||||
</div>
|
||||
<p v-if="chooseData == ''" style="color: #777; padding: 5px 0 0 15px">No Articles</p>
|
||||
</div>
|
||||
<p style="height: 1px; background-color: #ddd; width: 100%; margin-top: 35px"></p>
|
||||
<!-- <p style="height: 1px; background-color: #ddd; width: 100%; margin-top: 35px"></p>
|
||||
<p class="reta_tit">
|
||||
All articles
|
||||
<el-input
|
||||
@@ -240,14 +240,14 @@
|
||||
<div>
|
||||
<p class="selected_title">{{ item.title }}</p>
|
||||
</div>
|
||||
<!-- 添加 -->
|
||||
|
||||
<el-button class="selected_btn" size="mini" type="success" plain @click="addTree(item.article_id)"
|
||||
>Add</el-button
|
||||
>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</div> -->
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="RelatVisible = false" plain>Close</el-button>
|
||||
</span>
|
||||
@@ -303,7 +303,7 @@
|
||||
>
|
||||
<span style="margin-left: 15px; color: #0b4b6a" v-if="mains != ''">Typesetting completed</span>
|
||||
<template v-if="mains != ''">
|
||||
<el-button
|
||||
<!-- <el-button
|
||||
v-if="html_type == 2 && tg_article_id != 0"
|
||||
type="primary"
|
||||
plain
|
||||
@@ -313,8 +313,8 @@
|
||||
style="margin-left: 20px"
|
||||
>
|
||||
<font>Edit Html Proofread</font>
|
||||
</el-button>
|
||||
<el-button
|
||||
</el-button> -->
|
||||
<!-- <el-button
|
||||
v-if="html_type != 2"
|
||||
type="primary"
|
||||
plain
|
||||
@@ -324,7 +324,7 @@
|
||||
style="margin-left: 20px"
|
||||
>
|
||||
<font>Edit Html Proofread</font>
|
||||
</el-button>
|
||||
</el-button> -->
|
||||
</template>
|
||||
|
||||
<el-button
|
||||
@@ -411,7 +411,7 @@
|
||||
<span style="margin-left: 15px; color: #0b4b6a" v-if="refersList.length > 0"
|
||||
>There are {{ refersList.length }} pieces of data in total.</span
|
||||
>
|
||||
<el-button
|
||||
<!-- <el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-document-copy"
|
||||
@@ -420,7 +420,7 @@
|
||||
style="margin-left: 20px"
|
||||
>
|
||||
<font>Edit References</font>
|
||||
</el-button>
|
||||
</el-button> -->
|
||||
</template>
|
||||
<div>
|
||||
<el-table
|
||||
@@ -1446,7 +1446,7 @@ export default {
|
||||
.selected_title {
|
||||
font-size: 14px;
|
||||
line-height: 22px;
|
||||
margin-right: 80px;
|
||||
/* margin-right: 80px; */
|
||||
}
|
||||
|
||||
.choose_title > span {
|
||||
|
||||
@@ -1,299 +0,0 @@
|
||||
<template>
|
||||
<div style="height: 98%;">
|
||||
<div class="crumbs">
|
||||
<el-breadcrumb separator="/">
|
||||
<el-breadcrumb-item> <i class="el-icon-document-copy"></i> Artcile Html
|
||||
<el-button size="mini" style="position: absolute;right: 40px;" @click="goEdit">Edit</el-button>
|
||||
</el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
</div>
|
||||
<div class="container" style="height: 97%; min-width: 1000px; background-color: #fafafa; padding: 10px 0 0 0">
|
||||
|
||||
|
||||
<common-word
|
||||
:readonly="true"
|
||||
v-if="htmlContent"
|
||||
ref="commonWord"
|
||||
:value="htmlContent"
|
||||
:wordStyle="wordStyle"
|
||||
style="width: calc(100%); height: calc(100%); "
|
||||
:style="`100%`"
|
||||
></common-word>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mediaUrl } from '@/common/js/commonJS.js'; // 引入通用逻辑
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
wordStyle: `
|
||||
p {
|
||||
position: relative;
|
||||
padding: 8px 15px;
|
||||
min-height: 22px;
|
||||
border: 2px dashed #fff;
|
||||
border-radius: 5px;
|
||||
color: #606266;
|
||||
}
|
||||
p {
|
||||
font-size: 14px;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.imgBox .chNumer {
|
||||
position: absolute;
|
||||
top: -2px;
|
||||
right: -1px;
|
||||
border-radius: 3px;
|
||||
font-size: 10px;
|
||||
background-color: rgb(0 102 153 / 85%);
|
||||
color: #fff;
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
.MaxPicture {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.MaxPicture > img {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.font {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
font-size: 13px;
|
||||
}
|
||||
.tableTitle{
|
||||
text-align:center!important;
|
||||
font-weight: bold;
|
||||
}
|
||||
`,
|
||||
detailMes: {},
|
||||
baseUrl: this.Common.baseUrl,
|
||||
mediaUrl: mediaUrl, //
|
||||
Art_Id: this.$route.query.id,
|
||||
Art_Doi: this.$route.query.doi,
|
||||
Art_web_Id: this.$route.query.artID,
|
||||
Art_P_Id: '',
|
||||
btnDisble: true,
|
||||
detailTitle: '',
|
||||
htmlContent: '',
|
||||
Main_List: [],
|
||||
exegesis: "The following contents'<b></b>,<i></i>'are necessary for the generation phase, please do not delete them!!!"
|
||||
};
|
||||
},
|
||||
|
||||
created() {
|
||||
this.getInfo();
|
||||
},
|
||||
activated() {
|
||||
this.getInfo();
|
||||
},
|
||||
methods: {
|
||||
goEdit(){
|
||||
|
||||
|
||||
this.$router.push({
|
||||
path: '/GenerateCharts',
|
||||
query: {
|
||||
id: this.Art_Id
|
||||
}
|
||||
});
|
||||
},
|
||||
async getInfo() {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
// 获取文章信息
|
||||
await this.$api
|
||||
.post('api/Production/getProductionDetail', { p_article_id: this.Art_Id })
|
||||
.then(async (res) => {
|
||||
if (res.code == 0) {
|
||||
this.detailTitle = res.data.production.title
|
||||
this.detailMes = res.data.production;
|
||||
await this.getDate(loading);
|
||||
|
||||
loading.close();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
loading.close();
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
loading.close();
|
||||
});
|
||||
},
|
||||
getWord() {
|
||||
var htmlContent = `<h3 class="man_Title" contenteditable="false">${this.detailTitle} </h3>`;
|
||||
htmlContent += this.Main_List.map((item) => {
|
||||
//批注
|
||||
let contentHtml = '';
|
||||
var isRemark = ``;
|
||||
// if (item.state == 2 && item.remark && item.remark != '') {
|
||||
// // isRemark = `<img class="isRemark" main-id="${item.am_id}" src="${this.remarkImageUrl}" alt="" style="width:20px;height:20px;"/>`;
|
||||
// isRemark = `<span class="isRemark" main-id="${item.am_id}"><img class="isRemarkIcon" main-id="${item.am_id}" src="${this.remarkImageUrl}" alt="" style="width: 20px; height: 20px" />
|
||||
|
||||
// <span class="isRemarkIcon" main-id="${item.am_id}" > (${item.am_id})</span>
|
||||
// </span>
|
||||
|
||||
// `;
|
||||
// }
|
||||
// 判断是否是图片
|
||||
if (item.type == 1) {
|
||||
|
||||
|
||||
var extension = item.image.url.split('.').pop().toLowerCase();
|
||||
if (extension == 'tif') {
|
||||
contentHtml = `
|
||||
<p contenteditable="false" main-state="${item.state}" class="MaxPicture pMain" data-id="${item.ami_id}" main-id="${
|
||||
item.am_id
|
||||
}">
|
||||
<img src="" data-img-id="${item.ami_id}" style="width: ${item.width ? `${item.width}px` : '100%'}" />
|
||||
<font class="font" style="width: ${item.width ? `${item.width}px` : '100%'}">${item.image.note ? item.image.note : ''}</font>
|
||||
</p>
|
||||
`;
|
||||
} else if (['jpg', 'jpeg', 'png'].includes(extension)) {
|
||||
contentHtml = `
|
||||
<p contenteditable="false" main-state="${item.state}" class="MaxPicture pMain" data-id="${
|
||||
item.ami_id
|
||||
}" main-id="${item.am_id}">
|
||||
${isRemark}
|
||||
<img src="${this.mediaUrl + item.image.url}" style="width: ${
|
||||
item.width ? `${item.width}px` : '100%'
|
||||
}" />
|
||||
<font class="font" style="width: ${item.width ? `${item.width}px` : '100%'}" >${
|
||||
item.image.note ? item.image.note : ''
|
||||
}</font>
|
||||
</p>
|
||||
`;
|
||||
} else {
|
||||
contentHtml = `
|
||||
<p contenteditable="false" main-state="${item.state}" class="MaxPicture pMain" data-id="${
|
||||
item.ami_id
|
||||
}" main-id="${item.am_id}">
|
||||
${isRemark}
|
||||
<span
|
||||
style="
|
||||
text-align: center;
|
||||
font-size: 30px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
"
|
||||
>
|
||||
Figures ( .${item.image.url.split('.').pop().toUpperCase()})
|
||||
</span>
|
||||
|
||||
<font class="font" style="width: ${item.width ? `${item.width}px` : '100%'}" >${
|
||||
item.image.note ? item.image.note : ''
|
||||
}</font>
|
||||
</p>
|
||||
`;
|
||||
}
|
||||
} else if (item.type == 2) {
|
||||
var tableList = JSON.parse(item.table.table_data);
|
||||
|
||||
contentHtml = `
|
||||
<div contenteditable="false" data-id="${item.amt_id}" main-state="${item.state}" main-id="${
|
||||
item.am_id
|
||||
}" class="thumbnailTableBox wordTableHtml table_Box pMain" style="width: 100%; padding: 8px 15px; box-sizing: border-box; border-radius: 4px; position: relative;">
|
||||
${isRemark}
|
||||
<font class="font tableTitle" style="width:100%" >${item.table.title ? item.table.title : ''}</font>
|
||||
<table border="1" style="width: auto; border-collapse: collapse; text-align: center; ">
|
||||
${tableList
|
||||
.map((row) => {
|
||||
return `
|
||||
<tr>
|
||||
${row
|
||||
.map((cell) => {
|
||||
return `
|
||||
<td colspan="${cell.colspan || 1}" rowspan="${cell.rowspan || 1}">
|
||||
<span>${cell.text || ''}</span>
|
||||
</td>
|
||||
`;
|
||||
})
|
||||
.join('')} <!-- join the cells in the row -->
|
||||
</tr>
|
||||
`;
|
||||
})
|
||||
.join('')} <!-- join the rows -->
|
||||
</table>
|
||||
<font class="font" style="width:100%" >${item.table.note ? item.table.note : ''}</font>
|
||||
</div>
|
||||
`;
|
||||
} else {
|
||||
contentHtml = `<p class="pMain" main-state="${item.state}" contenteditable="false" data-id="${item.am_id}" main-id="${item.am_id}">${isRemark}${item.content}</p>`;
|
||||
}
|
||||
|
||||
// 判断是否是表格类型
|
||||
|
||||
return contentHtml;
|
||||
}).join('');
|
||||
this.htmlContent = htmlContent;
|
||||
},
|
||||
async getDate(loading) {
|
||||
let urlLInk = '';
|
||||
let urlTask = {};
|
||||
if (this.Art_Id != undefined) {
|
||||
urlLInk = 'api/Preaccept/getArticleMains';
|
||||
urlTask.article_id = this.detailMes.article_id;
|
||||
}
|
||||
|
||||
// 获取文章信息
|
||||
await this.$api
|
||||
.post(urlLInk, urlTask)
|
||||
.then(async (res) => {
|
||||
if (res.code == 0) {
|
||||
this.Main_List = res.data.list;
|
||||
// this.detailTitle = res.data.production.title
|
||||
for (let i = 0; i < this.Main_List.length; i++) {
|
||||
this.Main_List[i].text = this.Main_List[i].content;
|
||||
this.Main_List[i].getnum = 0;
|
||||
}
|
||||
|
||||
// setTimeout(async () => {
|
||||
this.$nextTick(async () => {
|
||||
await this.getWord();
|
||||
loading.close();
|
||||
});
|
||||
loading.close();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
loading.close();
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
loading.close();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.man_Title {
|
||||
background-color: #fff;
|
||||
margin: 0 0 10px 0;
|
||||
border-bottom: 1px solid #dde1eb;
|
||||
box-shadow: 0 5px 5px -2px rgb(134 134 134);
|
||||
padding: 12px 25px 8px 25px;
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
color: #333;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.man_Title button {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
}
|
||||
</style>
|
||||
37
src/components/page/comArtHtmlCreatNewProduce.vue
Normal file
37
src/components/page/comArtHtmlCreatNewProduce.vue
Normal file
@@ -0,0 +1,37 @@
|
||||
<template>
|
||||
<div style="height: 80vh">
|
||||
<iframe ref="myIframe" :src="externalUrl" frameborder="0" class="iframe-box" style="width: 100%; height: 100%"></iframe>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: ['deMesYul', 'p_article_id'],
|
||||
data() {
|
||||
return {
|
||||
externalUrl: `https://www.tmrjournals.com/ManuscriptProduce.html?J_num=25&a_id=${this.p_article_id}&preview=1`
|
||||
};
|
||||
},
|
||||
components: {},
|
||||
computed: {},
|
||||
watch: {},
|
||||
|
||||
created() {
|
||||
// this.loadDictionary().catch(console.error);
|
||||
},
|
||||
mounted() {
|
||||
const iframe = this.$refs.myIframe;
|
||||
// iframe.onload = () => {
|
||||
// iframe.contentWindow.postMessage(
|
||||
// { ...this.deMesYul },
|
||||
// 'https://www.tmrjournals.com' // 必须严格写 iframe 页面的域名
|
||||
// );
|
||||
// };
|
||||
},
|
||||
activated() {},
|
||||
|
||||
methods: {}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
565
src/components/page/components/article/Related.vue
Normal file
565
src/components/page/components/article/Related.vue
Normal file
@@ -0,0 +1,565 @@
|
||||
<template>
|
||||
<div>
|
||||
<p class="reta_tit" style="margin-bottom: 15px; margin-top: 0; overflow: hidden">
|
||||
Related Articles Selected
|
||||
<el-button type="primary" plain style="float: right" @click="changeRelatVisible()">Related Articles </el-button>
|
||||
</p>
|
||||
<div>
|
||||
<div v-for="item in chooseData" class="choose_list" @mouseover="mouseover(item)" @mouseleave="mouseout(item)">
|
||||
<div>
|
||||
<p class="choose_title">
|
||||
<b>{{ item.journal_title }}</b>
|
||||
<span>——</span>
|
||||
{{ item.title }}
|
||||
</p>
|
||||
</div>
|
||||
<!-- 删除 -->
|
||||
<el-button v-show="item.dropdownShow" class="choose_btn" size="mini" type="danger" plain @click="deleteTree(item)"
|
||||
>Delete
|
||||
</el-button>
|
||||
</div>
|
||||
<p v-if="chooseData == ''" style="color: #777; padding: 5px 0 0 15px">No Articles</p>
|
||||
</div>
|
||||
|
||||
<!-- 相关期刊 -->
|
||||
<div v-if="RelatVisible">
|
||||
<p style="height: 1px; background-color: #ddd; width: 100%; margin-top: 35px"></p>
|
||||
<p class="reta_tit">
|
||||
All articles
|
||||
<el-input
|
||||
v-model="RelatMes.keyword"
|
||||
clearable
|
||||
placeholder="Please enter keywords..."
|
||||
style="width: 200px; margin-left: 20px"
|
||||
></el-input>
|
||||
<el-button type="primary" style="margin-left: 20px" @click="NoneRelated">
|
||||
<i class="el-icon-search" style="margin-right: 5px"></i>Search
|
||||
</el-button>
|
||||
</p>
|
||||
<p v-if="alljourData == ''" style="color: #777; padding: 5px 0 0 15px">No Articles</p>
|
||||
<div>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<div class="journal_list">
|
||||
<div
|
||||
v-for="(item, index) in alljourData"
|
||||
@click="steps_title(index)"
|
||||
:class="steps_jour == index ? 'Tab_col' : ''"
|
||||
>
|
||||
<p>
|
||||
{{ item.title }}
|
||||
<span style="font-size: 12px"> ({{ item.articles.length }})</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="16">
|
||||
<div v-for="item in selectRelate" class="selected_list">
|
||||
<div>
|
||||
<p class="selected_title">{{ item.title }}</p>
|
||||
</div>
|
||||
<!-- 添加 -->
|
||||
<el-button class="selected_btn" size="mini" type="success" plain @click="addTree(item.article_id)"
|
||||
>Add</el-button
|
||||
>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <el-dialog title="" :visible.sync="RelatVisible" width="1000px" @close="RelatCancle" :close-on-click-modal="false"> -->
|
||||
|
||||
<!-- <span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="RelatVisible = false" plain>Close</el-button>
|
||||
</span> -->
|
||||
<!-- </el-dialog> -->
|
||||
|
||||
<!-- Html排版 -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: ['article_id', 'article_title', 'p_article_id'],
|
||||
data() {
|
||||
return {
|
||||
tg_article_id: 0,
|
||||
html_type: null,
|
||||
htmlContent: '',
|
||||
wordStyle: `
|
||||
p {
|
||||
position: relative;
|
||||
padding: 8px 15px;
|
||||
min-height: 22px;
|
||||
border: 2px dashed #fff;
|
||||
border-radius: 5px;
|
||||
color: #606266;
|
||||
}
|
||||
p {
|
||||
font-size: 14px;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.imgBox .chNumer {
|
||||
position: absolute;
|
||||
top: -2px;
|
||||
right: -1px;
|
||||
border-radius: 3px;
|
||||
font-size: 10px;
|
||||
background-color: rgb(0 102 153 / 85%);
|
||||
color: #fff;
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
.MaxPicture {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.MaxPicture > img {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.font {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
font-size: 13px;
|
||||
}
|
||||
.tableTitle{
|
||||
text-align:center!important;
|
||||
font-weight: bold;
|
||||
}
|
||||
`,
|
||||
articleId: null,
|
||||
createType: '1', // html生成方式
|
||||
collapseActiveNames: [], // 手风琴绑定值
|
||||
// oldFile:false, // 是否用新文件生成
|
||||
fileL_manuscirpt: [],
|
||||
baseUrl: this.Common.baseUrl,
|
||||
mediaUrl: this.Common.mediaUrl,
|
||||
username: localStorage.getItem('U_name'),
|
||||
editor_id: localStorage.getItem('U_id'),
|
||||
queryType: {
|
||||
issn: '',
|
||||
journal_stage_id: 0,
|
||||
seach: '',
|
||||
pageIndex: 1,
|
||||
pageSize: 10
|
||||
},
|
||||
Total: 0,
|
||||
dataTable: [],
|
||||
stageList: [],
|
||||
journalList: [],
|
||||
guestList: [],
|
||||
EditMes: {
|
||||
journal_special_id: 0,
|
||||
article_id: 0,
|
||||
title: 0,
|
||||
sort: 0
|
||||
},
|
||||
RelatMes: {
|
||||
keyword: ''
|
||||
},
|
||||
UpHtpFIle: {
|
||||
title: '',
|
||||
article_id: '',
|
||||
p_article_id: null,
|
||||
htmlfile: '',
|
||||
mains: []
|
||||
// refers:[], //引用参数
|
||||
},
|
||||
refersList: [],
|
||||
UpLoadFile: {
|
||||
article_id: '',
|
||||
file: ''
|
||||
},
|
||||
HtmlMes: {},
|
||||
EditVisible: false,
|
||||
RelatVisible: false,
|
||||
topicVisible: false,
|
||||
HtmlVisible: false,
|
||||
topListName: [],
|
||||
listopic: [],
|
||||
title_header: '',
|
||||
alljourData: [],
|
||||
selectRelate: [],
|
||||
chooseData: [],
|
||||
loading: false,
|
||||
steps_jour: 0,
|
||||
loadHtml: false, // mains 加载动画
|
||||
form: {
|
||||
manuscirpt: ''
|
||||
},
|
||||
fileData: '', // 上传后返回的文件url
|
||||
mains: [], // html 数据,
|
||||
newMains: []
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.ChoseRelated();
|
||||
},
|
||||
computed: {},
|
||||
methods: {
|
||||
changeRelatVisible() {
|
||||
|
||||
this.RelatVisible = !this.RelatVisible;
|
||||
this.RelatCancle()
|
||||
},
|
||||
// 获取列表
|
||||
|
||||
uperr_coverLetter(err) {
|
||||
this.$message.error('Upload error');
|
||||
},
|
||||
|
||||
//初始化期刊分期
|
||||
|
||||
// 话题列表
|
||||
|
||||
// 关闭相关文章
|
||||
RelatCancle() {
|
||||
this.RelatMes.keyword = '';
|
||||
this.alljourData = [];
|
||||
this.selectRelate = [];
|
||||
},
|
||||
openRelated() {
|
||||
this.RelatVisible = true;
|
||||
},
|
||||
// 弹出相关文章
|
||||
ChoseRelated(row) {
|
||||
this.RelatMes.title = this.article_title;
|
||||
this.RelatMes.p_article_id = this.p_article_id;
|
||||
this.SelectedRelated();
|
||||
},
|
||||
|
||||
// 获取已经选择的相关期刊
|
||||
SelectedRelated() {
|
||||
this.$api
|
||||
.post('api/Production/getProductRelatedList', this.RelatMes)
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.chooseData = res.data.list;
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
},
|
||||
|
||||
// 获取全部的相关期刊
|
||||
NoneRelated() {
|
||||
this.steps_jour = 0;
|
||||
if (this.RelatMes.keyword == '') {
|
||||
this.$message.error('Keyword cannot be empty!');
|
||||
return;
|
||||
}
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
this.$api
|
||||
.post('api/Publish/getKeywordArticleOrderJournal', this.RelatMes)
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.alljourData = res.data.journals;
|
||||
if (this.alljourData.length > 0) {
|
||||
this.selectRelate = this.alljourData[this.steps_jour].articles;
|
||||
} else {
|
||||
this.selectRelate = [];
|
||||
}
|
||||
|
||||
loading.close();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
loading.close();
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
loading.close();
|
||||
});
|
||||
},
|
||||
|
||||
// 切换期刊-相关期刊
|
||||
steps_title(e) {
|
||||
this.steps_jour = e;
|
||||
this.selectRelate = this.alljourData[e].articles;
|
||||
},
|
||||
|
||||
// 鼠标状态-相关期刊
|
||||
mouseover(item) {
|
||||
// 移入
|
||||
this.$set(item, 'dropdownShow', true);
|
||||
},
|
||||
mouseout(item) {
|
||||
// 移除
|
||||
this.$set(item, 'dropdownShow', false);
|
||||
},
|
||||
|
||||
// 删除-相关期刊
|
||||
deleteTree(e) {
|
||||
// 二次确认删除
|
||||
this.$confirm('Are you sure you want to delete ' + e.title + '?', 'Tips', {
|
||||
type: 'warning',
|
||||
confirmButtonText: 'OK',
|
||||
cancelButtonText: 'Cancel'
|
||||
})
|
||||
.then(() => {
|
||||
this.$api
|
||||
.post('api/Production/delProductRelated', {
|
||||
p_article_id: this.RelatMes.p_article_id,
|
||||
article_id: e.article_id
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('Deletion succeeded!');
|
||||
this.SelectedRelated();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
|
||||
// 添加-相关期刊
|
||||
addTree(e) {
|
||||
this.$api
|
||||
.post('api/Production/addProductRelated', {
|
||||
p_article_id: this.RelatMes.p_article_id,
|
||||
article_id: e
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('Successfully added related journal!');
|
||||
// this.RelatVisible=false
|
||||
this.SelectedRelated();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
}
|
||||
},
|
||||
watch: {}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.doiLink {
|
||||
color: #409eff;
|
||||
}
|
||||
.up_newstyle {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.up .up_newstyle {
|
||||
margin-left: 0;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
/deep/ .el-upload--text {
|
||||
background-color: #ecf5ff;
|
||||
border: 1px solid #b3d8ff !important;
|
||||
padding: 0 7px;
|
||||
/* margin-left: 10px; */
|
||||
}
|
||||
|
||||
.up_newstyle .el-upload__text em {
|
||||
color: #409eff !important;
|
||||
font-size: 12px;
|
||||
}
|
||||
.handle-box {
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
|
||||
.table {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.journal_list {
|
||||
border-right: 2px solid #e4e7ed;
|
||||
margin: 0 8px 0 0;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
.journal_list > div.Tab_col {
|
||||
color: #006699;
|
||||
font-weight: bold;
|
||||
border-right: 2px solid #006699;
|
||||
margin-right: -2px;
|
||||
letter-spacing: -0.5px;
|
||||
}
|
||||
|
||||
.journal_list > div > p {
|
||||
margin-bottom: 10px;
|
||||
padding: 8px 0;
|
||||
cursor: pointer;
|
||||
font-size: 15px;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.reta_tit {
|
||||
margin: 30px 0 30px 0;
|
||||
font-weight: bold;
|
||||
letter-spacing: -0.5px;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.reta_riqi {
|
||||
font-weight: bold;
|
||||
font-size: 17px;
|
||||
margin: 18px 0 20px 15px;
|
||||
}
|
||||
|
||||
.choose_list {
|
||||
padding: 14px 15px;
|
||||
margin-bottom: 10px;
|
||||
border-bottom: 1px solid #ebf5ff;
|
||||
background-color: #f8fbff;
|
||||
-webkit-box-shadow: 2px 30px 15px -20px #ebf5ff inset;
|
||||
box-shadow: inset 2px 30px 15px -20px #ebf5ff;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.selected_list {
|
||||
padding: 15px 15px;
|
||||
border-radius: 10px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.selected_list:nth-child(2n + 1) {
|
||||
background-color: #f8fbff;
|
||||
/* -webkit-box-shadow: 2px 30px 15px -20px #ebf5ff inset;
|
||||
box-shadow: inset 2px 30px 15px -20px #ebf5ff; */
|
||||
}
|
||||
|
||||
.selected_list:hover {
|
||||
background-color: #ebf5ff;
|
||||
}
|
||||
|
||||
.choose_title,
|
||||
.selected_title {
|
||||
font-size: 14px;
|
||||
line-height: 22px;
|
||||
margin-right: 80px;
|
||||
}
|
||||
|
||||
.choose_title > span {
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
||||
.choose_time {
|
||||
font-size: 15px;
|
||||
color: #888;
|
||||
margin: 0 0 10px 0;
|
||||
}
|
||||
|
||||
.choose_btn,
|
||||
.selected_btn {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 10px;
|
||||
}
|
||||
|
||||
.titHtml {
|
||||
border: 2px dotted #ccc;
|
||||
background-color: #f7f7f7;
|
||||
border-radius: 2px;
|
||||
padding: 0px 20px 20px 20px;
|
||||
margin: 15px 0 0 0;
|
||||
}
|
||||
|
||||
.titHtml > div {
|
||||
letter-spacing: 0.03em;
|
||||
margin: 15px 0 0 0;
|
||||
}
|
||||
|
||||
.titHtml > div > p {
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
min-height: 19px;
|
||||
color: #444;
|
||||
word-break: break-word;
|
||||
font-family: 'Helvetica Neue', Helvetica, Georgia, sans-serif;
|
||||
}
|
||||
|
||||
.titHtml .MaxPicture {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.titHtml .MaxPicture > img {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.titHtml .MaxPicture > font {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
/deep/.htmlfile .upload-demo {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/deep/.htmlfile .upload-demo .el-upload {
|
||||
width: 55px;
|
||||
float: left;
|
||||
margin-left: 5px;
|
||||
border: none;
|
||||
text-align: left;
|
||||
height: 35px;
|
||||
}
|
||||
|
||||
/deep/.htmlfile .upload-demo .el-upload {
|
||||
margin-left: 0 !important;
|
||||
width: 150px !important;
|
||||
height: auto !important;
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
/deep/.htmlfile .upload-demo .el-upload__tip {
|
||||
margin-left: 15px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
/deep/.htmlfile .upload-demo .el-upload-list {
|
||||
margin-top: -4px;
|
||||
margin-left: 20px;
|
||||
float: left;
|
||||
width: 500px;
|
||||
/* display: none; */
|
||||
}
|
||||
|
||||
/* /deep/ .import.is-disabled{background: #ecf5ff !important; color: #8cc5ff !important; border-color: #d9ecff !important;} */
|
||||
|
||||
/* /deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item {
|
||||
width: 30px !important;
|
||||
} */
|
||||
|
||||
/deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* /deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item .el-upload-list__item-name {
|
||||
width: 30px;
|
||||
} */
|
||||
|
||||
/* /deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item .el-upload-list__item-status-label {
|
||||
display: none;
|
||||
} */
|
||||
|
||||
/* /deep/.htmlfile .upload-demo .el-upload-list__item:hover .el-icon-close {
|
||||
display: none;
|
||||
} */
|
||||
/deep/ .table99 th {
|
||||
background: #e4e7ed !important;
|
||||
color: #777 !important;
|
||||
}
|
||||
</style>
|
||||
657
src/components/page/components/article/topic.vue
Normal file
657
src/components/page/components/article/topic.vue
Normal file
@@ -0,0 +1,657 @@
|
||||
<template>
|
||||
<div style="height: calc(100% - 40px); overflow-y: auto">
|
||||
<!-- <div style="display: flex; align-items: center; justify-content: space-between;padding:0 40px;margin-bottom: 20px;">
|
||||
<div style="color: #409EFF;">Select Topics:</div>
|
||||
<div style="width: calc(100% - 120px)">
|
||||
<p v-for="(item,i) in topListName"><span>{{ i+1 }}、</span>{{ item }}</p>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<el-form ref="editMes" :model="EditMes" label-width="40px">
|
||||
<el-form-item label="">
|
||||
<el-checkbox-group
|
||||
v-model="EditMes.topic"
|
||||
value-key="journal_topic_id"
|
||||
style="display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap"
|
||||
>
|
||||
<el-checkbox
|
||||
v-for="item in listopic"
|
||||
style="display: block; width: 48%; margin-right: 0"
|
||||
name="topic"
|
||||
:label="item.journal_topic_id + ''"
|
||||
:key="item.journal_topic_id"
|
||||
@change="chan_topic($event, item)"
|
||||
>{{ item.tname }}</el-checkbox
|
||||
>
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<!-- 相关期刊 -->
|
||||
<el-dialog title="" :visible.sync="RelatVisible" width="1000px" @close="RelatCancle" :close-on-click-modal="false">
|
||||
<p style="font-weight: bold; font-size: 16px; margin-bottom: 30px" v-html="RelatMes.title"></p>
|
||||
<p class="reta_tit" style="margin-bottom: 15px; margin-top: 0">Related articles selected</p>
|
||||
<div>
|
||||
<div v-for="item in chooseData" class="choose_list" @mouseover="mouseover(item)" @mouseleave="mouseout(item)">
|
||||
<div>
|
||||
<p class="choose_title">
|
||||
<b>{{ item.journal_title }}</b>
|
||||
<span>——</span>
|
||||
{{ item.title }}
|
||||
</p>
|
||||
</div>
|
||||
<!-- 删除 -->
|
||||
<el-button
|
||||
v-show="item.dropdownShow"
|
||||
class="choose_btn"
|
||||
size="mini"
|
||||
type="danger"
|
||||
plain
|
||||
@click="deleteTree(item.article_id)"
|
||||
>Delete
|
||||
</el-button>
|
||||
</div>
|
||||
<p v-if="chooseData == ''" style="color: #777; padding: 5px 0 0 15px">No Articles</p>
|
||||
</div>
|
||||
<p style="height: 1px; background-color: #ddd; width: 100%; margin-top: 35px"></p>
|
||||
<p class="reta_tit">
|
||||
All articles
|
||||
<el-input
|
||||
v-model="RelatMes.keyword"
|
||||
placeholder="Please enter keywords..."
|
||||
style="width: 200px; margin-left: 20px"
|
||||
></el-input>
|
||||
<el-button type="primary" style="margin-left: 20px" @click="NoneRelated">
|
||||
<i class="el-icon-search" style="margin-right: 5px"></i>Search
|
||||
</el-button>
|
||||
</p>
|
||||
<p v-if="alljourData == ''" style="color: #777; padding: 5px 0 0 15px">No Articles</p>
|
||||
<div>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<div class="journal_list">
|
||||
<div
|
||||
v-for="(item, index) in alljourData"
|
||||
@click="steps_title(index)"
|
||||
:class="steps_jour == index ? 'Tab_col' : ''"
|
||||
>
|
||||
<p>
|
||||
{{ item.title }}
|
||||
<span style="font-size: 12px"> ({{ item.articles.length }})</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="16">
|
||||
<div v-for="item in selectRelate" class="selected_list">
|
||||
<div>
|
||||
<p class="selected_title">{{ item.title }}</p>
|
||||
</div>
|
||||
<!-- 添加 -->
|
||||
<el-button class="selected_btn" size="mini" type="success" plain @click="addTree(item.article_id)"
|
||||
>Add</el-button
|
||||
>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="RelatVisible = false" plain>Close</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<!-- Html排版 -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: ['article_id','p_article_id'],
|
||||
data() {
|
||||
return {
|
||||
tg_article_id: 0,
|
||||
html_type: null,
|
||||
htmlContent: '',
|
||||
wordStyle: `
|
||||
p {
|
||||
position: relative;
|
||||
padding: 8px 15px;
|
||||
min-height: 22px;
|
||||
border: 2px dashed #fff;
|
||||
border-radius: 5px;
|
||||
color: #606266;
|
||||
}
|
||||
p {
|
||||
font-size: 14px;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.imgBox .chNumer {
|
||||
position: absolute;
|
||||
top: -2px;
|
||||
right: -1px;
|
||||
border-radius: 3px;
|
||||
font-size: 10px;
|
||||
background-color: rgb(0 102 153 / 85%);
|
||||
color: #fff;
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
.MaxPicture {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.MaxPicture > img {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.font {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
font-size: 13px;
|
||||
}
|
||||
.tableTitle{
|
||||
text-align:center!important;
|
||||
font-weight: bold;
|
||||
}
|
||||
`,
|
||||
articleId: null,
|
||||
createType: '1', // html生成方式
|
||||
collapseActiveNames: [], // 手风琴绑定值
|
||||
// oldFile:false, // 是否用新文件生成
|
||||
fileL_manuscirpt: [],
|
||||
baseUrl: this.Common.baseUrl,
|
||||
mediaUrl: this.Common.mediaUrl,
|
||||
username: localStorage.getItem('U_name'),
|
||||
editor_id: localStorage.getItem('U_id'),
|
||||
queryType: {
|
||||
issn: '',
|
||||
journal_stage_id: 0,
|
||||
seach: '',
|
||||
pageIndex: 1,
|
||||
pageSize: 10
|
||||
},
|
||||
Total: 0,
|
||||
dataTable: [],
|
||||
stageList: [],
|
||||
journalList: [],
|
||||
guestList: [],
|
||||
EditMes: {
|
||||
journal_special_id: 0,
|
||||
article_id: 0,
|
||||
title: 0,
|
||||
sort: 0
|
||||
},
|
||||
RelatMes: {
|
||||
keyword: ''
|
||||
},
|
||||
UpHtpFIle: {
|
||||
title: '',
|
||||
article_id: '',
|
||||
p_article_id: null,
|
||||
htmlfile: '',
|
||||
mains: []
|
||||
// refers:[], //引用参数
|
||||
},
|
||||
refersList: [],
|
||||
UpLoadFile: {
|
||||
article_id: '',
|
||||
file: ''
|
||||
},
|
||||
HtmlMes: {},
|
||||
EditVisible: false,
|
||||
RelatVisible: false,
|
||||
topicVisible: false,
|
||||
HtmlVisible: false,
|
||||
topListName: [],
|
||||
listopic: [],
|
||||
title_header: '',
|
||||
alljourData: [],
|
||||
selectRelate: [],
|
||||
chooseData: [],
|
||||
loading: false,
|
||||
steps_jour: 0,
|
||||
loadHtml: false, // mains 加载动画
|
||||
form: {
|
||||
manuscirpt: ''
|
||||
},
|
||||
fileData: '', // 上传后返回的文件url
|
||||
mains: [], // html 数据,
|
||||
newMains: []
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.topListData();
|
||||
},
|
||||
computed: {},
|
||||
methods: {
|
||||
// 获取列表
|
||||
|
||||
uperr_coverLetter(err) {
|
||||
this.$message.error('Upload error');
|
||||
},
|
||||
|
||||
//初始化期刊分期
|
||||
|
||||
// 话题列表
|
||||
topListData() {
|
||||
this.topListName = [];
|
||||
this.$api
|
||||
.post('api/Production/getTopicsByIssn', {
|
||||
p_article_id: this.p_article_id
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
for (var r = 0; r < res.data.now.length; r++) {
|
||||
for (var v = 0; v < res.data.list.length; v++) {
|
||||
if (res.data.now[r] == res.data.list[v].journal_topic_id) {
|
||||
res.data.list[v].article_to_topic_id = res.data.now[r].article_to_topic_id;
|
||||
|
||||
this.topListName.push(res.data.list[v].tname);
|
||||
}
|
||||
}
|
||||
}
|
||||
this.listopic = res.data.list;
|
||||
|
||||
let wzht_list = [];
|
||||
for (var i = 0; i < res.data.now.length; i++) {
|
||||
wzht_list.push(res.data.now[i] + '');
|
||||
}
|
||||
this.EditMes.topic = wzht_list;
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
},
|
||||
|
||||
// 选择话题
|
||||
chan_topic($event, val) {
|
||||
if ($event == true) {
|
||||
this.$api
|
||||
.post('api/Production/addProductTopic', {
|
||||
p_article_id: this.p_article_id,
|
||||
journal_topic_id: val.journal_topic_id
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.topListData(this.p_article_id);
|
||||
// this.$message.success('Successfully added topic!');
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
} else {
|
||||
this.$api
|
||||
.post('api/Production/delProductTopic', {
|
||||
p_article_id: this.p_article_id,
|
||||
journal_topic_id: val.journal_topic_id
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.topListData(this.p_article_id);
|
||||
// this.$message.success('Topic deleted successfully!');
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
// 关闭相关文章
|
||||
RelatCancle() {
|
||||
this.RelatMes.keyword = '';
|
||||
this.alljourData = [];
|
||||
this.selectRelate = [];
|
||||
},
|
||||
|
||||
// 弹出相关文章
|
||||
ChoseRelated(row) {
|
||||
this.RelatMes.title = row.title;
|
||||
this.RelatMes.article_id = row.article_id;
|
||||
this.SelectedRelated();
|
||||
setTimeout(() => {
|
||||
this.RelatVisible = true;
|
||||
}, 300);
|
||||
},
|
||||
|
||||
// 获取已经选择的相关期刊
|
||||
SelectedRelated() {
|
||||
this.$api
|
||||
.post('api/Publish/getArticleRelates', this.RelatMes)
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.chooseData = res.data.articles;
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
},
|
||||
|
||||
// 获取全部的相关期刊
|
||||
NoneRelated() {
|
||||
this.steps_jour = 0;
|
||||
if (this.RelatMes.keyword == '') {
|
||||
this.$message.error('Keyword cannot be empty!');
|
||||
return;
|
||||
}
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
this.$api
|
||||
.post('api/Publish/getKeywordArticleOrderJournal', this.RelatMes)
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.alljourData = res.data.journals;
|
||||
if (this.alljourData.length > 0) {
|
||||
this.selectRelate = this.alljourData[this.steps_jour].articles;
|
||||
} else {
|
||||
this.selectRelate = [];
|
||||
}
|
||||
|
||||
loading.close();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
loading.close();
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
loading.close();
|
||||
});
|
||||
},
|
||||
|
||||
// 切换期刊-相关期刊
|
||||
steps_title(e) {
|
||||
this.steps_jour = e;
|
||||
this.selectRelate = this.alljourData[e].articles;
|
||||
},
|
||||
|
||||
// 鼠标状态-相关期刊
|
||||
mouseover(item) {
|
||||
// 移入
|
||||
this.$set(item, 'dropdownShow', true);
|
||||
},
|
||||
mouseout(item) {
|
||||
// 移除
|
||||
this.$set(item, 'dropdownShow', false);
|
||||
},
|
||||
|
||||
// 删除-相关期刊
|
||||
deleteTree(e) {
|
||||
// 二次确认删除
|
||||
this.$confirm('Are you sure you want to delete ' + e.title + '?', 'Tips', {
|
||||
type: 'warning',
|
||||
confirmButtonText: 'OK',
|
||||
cancelButtonText: 'Cancel'
|
||||
})
|
||||
.then(() => {
|
||||
this.$api
|
||||
.post('api/Publish/delArticleRelate', {
|
||||
article_id: this.RelatMes.article_id,
|
||||
del_article_id: e
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('Deletion succeeded!');
|
||||
this.SelectedRelated();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
|
||||
// 添加-相关期刊
|
||||
addTree(e) {
|
||||
this.$api
|
||||
.post('api/Publish/addArticleRelate', {
|
||||
article_id: this.RelatMes.article_id,
|
||||
add_article_id: e
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('Successfully added related journal!');
|
||||
this.SelectedRelated();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
}
|
||||
},
|
||||
watch: {}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.doiLink {
|
||||
color: #409eff;
|
||||
}
|
||||
.up_newstyle {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.up .up_newstyle {
|
||||
margin-left: 0;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
/deep/ .el-upload--text {
|
||||
background-color: #ecf5ff;
|
||||
border: 1px solid #b3d8ff !important;
|
||||
padding: 0 7px;
|
||||
/* margin-left: 10px; */
|
||||
}
|
||||
|
||||
.up_newstyle .el-upload__text em {
|
||||
color: #409eff !important;
|
||||
font-size: 12px;
|
||||
}
|
||||
.handle-box {
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
|
||||
.table {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.journal_list {
|
||||
border-right: 2px solid #e4e7ed;
|
||||
margin: 0 8px 0 0;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
.journal_list > div.Tab_col {
|
||||
color: #006699;
|
||||
font-weight: bold;
|
||||
border-right: 2px solid #006699;
|
||||
margin-right: -2px;
|
||||
letter-spacing: -0.5px;
|
||||
}
|
||||
|
||||
.journal_list > div > p {
|
||||
margin-bottom: 10px;
|
||||
padding: 8px 0;
|
||||
cursor: pointer;
|
||||
font-size: 15px;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.reta_tit {
|
||||
margin: 30px 0 30px 0;
|
||||
font-weight: bold;
|
||||
letter-spacing: -0.5px;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.reta_riqi {
|
||||
font-weight: bold;
|
||||
font-size: 17px;
|
||||
margin: 18px 0 20px 15px;
|
||||
}
|
||||
|
||||
.choose_list {
|
||||
padding: 14px 15px;
|
||||
margin-bottom: 10px;
|
||||
border-bottom: 1px solid #ebf5ff;
|
||||
background-color: #f8fbff;
|
||||
-webkit-box-shadow: 2px 30px 15px -20px #ebf5ff inset;
|
||||
box-shadow: inset 2px 30px 15px -20px #ebf5ff;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.selected_list {
|
||||
padding: 15px 15px;
|
||||
border-radius: 10px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.selected_list:nth-child(2n + 1) {
|
||||
background-color: #f8fbff;
|
||||
/* -webkit-box-shadow: 2px 30px 15px -20px #ebf5ff inset;
|
||||
box-shadow: inset 2px 30px 15px -20px #ebf5ff; */
|
||||
}
|
||||
|
||||
.selected_list:hover {
|
||||
background-color: #ebf5ff;
|
||||
}
|
||||
|
||||
.choose_title,
|
||||
.selected_title {
|
||||
font-size: 14px;
|
||||
line-height: 22px;
|
||||
margin-right: 80px;
|
||||
}
|
||||
|
||||
.choose_title > span {
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
||||
.choose_time {
|
||||
font-size: 15px;
|
||||
color: #888;
|
||||
margin: 0 0 10px 0;
|
||||
}
|
||||
|
||||
.choose_btn,
|
||||
.selected_btn {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 10px;
|
||||
}
|
||||
|
||||
.titHtml {
|
||||
border: 2px dotted #ccc;
|
||||
background-color: #f7f7f7;
|
||||
border-radius: 2px;
|
||||
padding: 0px 20px 20px 20px;
|
||||
margin: 15px 0 0 0;
|
||||
}
|
||||
|
||||
.titHtml > div {
|
||||
letter-spacing: 0.03em;
|
||||
margin: 15px 0 0 0;
|
||||
}
|
||||
|
||||
.titHtml > div > p {
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
min-height: 19px;
|
||||
color: #444;
|
||||
word-break: break-word;
|
||||
font-family: 'Helvetica Neue', Helvetica, Georgia, sans-serif;
|
||||
}
|
||||
|
||||
.titHtml .MaxPicture {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.titHtml .MaxPicture > img {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.titHtml .MaxPicture > font {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
/deep/.htmlfile .upload-demo {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/deep/.htmlfile .upload-demo .el-upload {
|
||||
width: 55px;
|
||||
float: left;
|
||||
margin-left: 5px;
|
||||
border: none;
|
||||
text-align: left;
|
||||
height: 35px;
|
||||
}
|
||||
|
||||
/deep/.htmlfile .upload-demo .el-upload {
|
||||
margin-left: 0 !important;
|
||||
width: 150px !important;
|
||||
height: auto !important;
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
/deep/.htmlfile .upload-demo .el-upload__tip {
|
||||
margin-left: 15px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
/deep/.htmlfile .upload-demo .el-upload-list {
|
||||
margin-top: -4px;
|
||||
margin-left: 20px;
|
||||
float: left;
|
||||
width: 500px;
|
||||
/* display: none; */
|
||||
}
|
||||
|
||||
/* /deep/ .import.is-disabled{background: #ecf5ff !important; color: #8cc5ff !important; border-color: #d9ecff !important;} */
|
||||
|
||||
/* /deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item {
|
||||
width: 30px !important;
|
||||
} */
|
||||
|
||||
/deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* /deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item .el-upload-list__item-name {
|
||||
width: 30px;
|
||||
} */
|
||||
|
||||
/* /deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item .el-upload-list__item-status-label {
|
||||
display: none;
|
||||
} */
|
||||
|
||||
/* /deep/.htmlfile .upload-demo .el-upload-list__item:hover .el-icon-close {
|
||||
display: none;
|
||||
} */
|
||||
/deep/ .table99 th {
|
||||
background: #e4e7ed !important;
|
||||
color: #777 !important;
|
||||
}
|
||||
</style>
|
||||
@@ -5,6 +5,7 @@
|
||||
ref="scrollDiv"
|
||||
>
|
||||
<div
|
||||
class=""
|
||||
style="
|
||||
box-shadow: 0 2px 2px -2px rgba(34, 47, 62, 0.1), 0 8px 8px -4px rgba(34, 47, 62, 0.07);
|
||||
margin: 0px 0;
|
||||
@@ -105,7 +106,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class=""
|
||||
class="word-container-box"
|
||||
:style="isPreview ? 'width: 100%;padding: 20px;' : 'width: calc(100% - 300px);padding: 60px 20px 20px 34px;'"
|
||||
style="
|
||||
box-sizing: border-box;
|
||||
@@ -136,7 +137,7 @@
|
||||
<span>{{ item.am_id }}</span>
|
||||
</span>
|
||||
<div
|
||||
:class="!isPreview ? (item.is_h1 ? 'isTitleH1' : item.is_h2 ? 'isTitleH2' : item.is_h3 ? 'isTitleH3' : '') : ''"
|
||||
:class="!isPreview ? (item.is_h1 ? 'isTitleH1' : item.is_h2 ? 'isTitleH2' : item.is_h3 ? 'isTitleH3' : '') : item.is_h1 ? 'Ptitle' :''"
|
||||
style="line-height: 24px"
|
||||
>
|
||||
<template v-if="!isPreview">
|
||||
|
||||
Reference in New Issue
Block a user