2728 lines
93 KiB
Vue
2728 lines
93 KiB
Vue
<template>
|
||
<div style="width: 100%; height: 100%">
|
||
<div class="tab_post">
|
||
<div v-for="(item, index) in tabsList" @click="jumpTab(index, item)" :class="tabName == item.refName ? 'P_style' : ''">
|
||
<h5>
|
||
<span>{{ index + 1 }}</span>
|
||
{{ item.name }}
|
||
</h5>
|
||
<p v-if="index == 0">
|
||
|
||
<span style="color: #f56c6c; font-weight: 700" v-if="feeStatus == 0">
|
||
<i class="el-icon-warning" style="margin-right: 10px"></i>Manuscript unpaid
|
||
</span>
|
||
<span v-else-if="feeStatus == 1" style="font-weight: 700">
|
||
<i class="el-icon-warning" style="color: #67c23a; margin-right: 10px"></i>Paid already
|
||
</span>
|
||
<span v-else-if="feeStatus == 2" style="font-weight: 700">
|
||
<i class="el-icon-warning" style="color: #67c23a; margin-right: 10px"></i>No payment required
|
||
</span>
|
||
</p>
|
||
<p v-if="index == 1">{{ item.rongCont }}</p>
|
||
<p v-if="index == 2">
|
||
<el-button type="primary" plain @click="htmlContet()" style="width: auto; font-weight: bold; margin-top: 10px">
|
||
<i class="el-icon-document-copy" style="font-weight: bold; font-size: 14px"></i>
|
||
Text Proofread
|
||
</el-button>
|
||
</p>
|
||
|
||
<!-- <div class="line"></div> -->
|
||
</div>
|
||
<div style="margin: 30px 0 0 0">
|
||
<el-button type="primary" @click="pushToAccept(detailMes)" style="width: 220px">
|
||
<i class="el-icon-finished"></i>
|
||
Push To Accept
|
||
</el-button>
|
||
</div>
|
||
<!-- <div style="margin: 20px 0 0 0">
|
||
<el-button type="text" @click="pushToProduce(detailMes)" style="font-size: 13px">
|
||
<i class="el-icon-finished"></i>
|
||
Begin to Production
|
||
</el-button>
|
||
</div> -->
|
||
<!-- 作者联系 -->
|
||
<div class="contactAuthor">
|
||
<h4>Contact author</h4>
|
||
<p>
|
||
→ Send email
|
||
<b @click="linkEmail" class="btnCliArt" style="margin-left: 15px">
|
||
<i class="el-icon-message"></i>
|
||
</b>
|
||
</p>
|
||
<p style="margin-top: 10px">
|
||
→ Chat width communication
|
||
<b @click="chatcommunication" class="btnCliArt" style="margin-left: 15px">
|
||
<i class="el-icon-chat-line-square"></i>
|
||
</b>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="scroll-content guanSty" @scroll="onScroll" :style="'height: calc(100%);overflow: auto;'">
|
||
<div :ref="tabsList[0].refName" class="scroll-item">
|
||
<div class="bor_style_onli" style="height: auto; overflow: hidden">
|
||
<h4>{{ tabsList[0].name }}</h4>
|
||
<div style="" class="payment_info_box">
|
||
<div class="payment_info" style="width: 100%">
|
||
<el-table :data="tableData" style="width: 100%" align="center">
|
||
<el-table-column prop="fee" :label="$t('pendingPayment.total')" width="150px">
|
||
<template slot-scope="scope"> {{ scope.row.original_price }} USD </template>
|
||
</el-table-column>
|
||
<el-table-column :label="$t('pendingPayment.discountprice')" width="200px">
|
||
<template slot-scope="scope">
|
||
{{ scope.row.fee }} USD
|
||
<span
|
||
style="cursor: pointer; color: #006699; margin-left: 10px"
|
||
v-if="feeStatus == 0"
|
||
@click="handleEditFee"
|
||
><i class="el-icon-edit"></i> Edit</span
|
||
></template
|
||
>
|
||
</el-table-column>
|
||
|
||
<el-table-column :label="$t('pendingPayment.youhuiremark')">
|
||
<template slot-scope="scope">
|
||
<p>
|
||
<span class="remark">{{ article_pay_info.fee_remark }}</span>
|
||
</p>
|
||
</template>
|
||
</el-table-column>
|
||
|
||
<el-table-column prop="" :label="$t('pendingPayment.Paymentstatus')">
|
||
<template slot-scope="scope">
|
||
|
||
<span v-if="feeStatus == 0" style="color: #f56c6c"><b>Manuscript unpaid</b></span>
|
||
<span v-if="feeStatus == 1" style="color: #67c23a"><b>Paid already</b></span>
|
||
<span v-if="feeStatus == 2" style="color: #67c23a"><b>No payment required</b></span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="" :label="$t('pendingPayment.Paymentamount')" v-if="feeStatus == 1">
|
||
<template slot-scope="scope">
|
||
<p v-if="article_pay_info.paystation_fee">
|
||
<span class="price">{{ formatAmount(Number(article_pay_info.paystation_fee / 100)) }}</span>
|
||
{{ article_pay_info.paystation_currency }}
|
||
</p>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="" :label="$t('pendingPayment.time')" v-if="feeStatus == 1">
|
||
<template slot-scope="scope">
|
||
<p>
|
||
<span style="color: #888">{{
|
||
article_pay_info.paystation_time ? article_pay_info.paystation_time : 'unknown'
|
||
}}</span>
|
||
</p>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div :ref="tabsList[1].refName" class="scroll-item">
|
||
<div class="bor_style_onli bor_style_onli_ref">
|
||
<h4>{{ tabsList[1].name }}</h4>
|
||
|
||
<editPublicRefRdit
|
||
ref="editPublicRefRdit"
|
||
:chanFerForm="chanFerForm"
|
||
:chanFerFormRepeatList="chanFerFormRepeatList"
|
||
:gridData="gridData"
|
||
:p_article_id="p_article_id"
|
||
@ChanFerMashUp="ChanFerMashUp"
|
||
@refrashComp="refrashComp"
|
||
@changeRefer="changeRefer"
|
||
></editPublicRefRdit>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Html排版 -->
|
||
|
||
<!-- 生成文章 -->
|
||
|
||
<!-- 作者确认 -->
|
||
</div>
|
||
|
||
<!-- 上线弹出框 -->
|
||
<el-dialog title="Tips" :visible.sync="onlineVisible" width="680px" :close-on-click-modal="false">
|
||
<p style="line-height: 24px">Are you sure you want to push this manuscript to the official website? You can preview first.</p>
|
||
<div style="text-align: right; margin-top: 30px">
|
||
<el-button @click="onlineVisible = false">Cancel</el-button>
|
||
<el-button type="warning" @click="gOpreviewList()" icon="el-icon-tickets">Preview list</el-button>
|
||
<el-button type="warning" @click="gOpreviewArt()" icon="el-icon-document">Preview article</el-button>
|
||
<el-button type="warning" @click="gOpreviewPDF()" icon="el-icon-notebook-2">Preview PDF</el-button>
|
||
<el-button type="primary" @click="gOline()" icon="el-icon-finished">Push Online</el-button>
|
||
</div>
|
||
</el-dialog>
|
||
|
||
<!-- 预览列表 -->
|
||
<el-dialog title="" :visible.sync="preLisVisible" width="850px" :close-on-click-modal="false">
|
||
<div class="aMesage">
|
||
<div class="aMes_typ">
|
||
{{ deMesYul.type }}
|
||
</div>
|
||
<div class="aMes_tit">
|
||
{{ deMesYul.title }}
|
||
</div>
|
||
<div class="aMes_autor">
|
||
<span v-for="(item, index) in authorData">
|
||
{{ item.author_name }}
|
||
<span v-if="index != authorData.length - 1" style="margin-right: 3px">,</span>
|
||
</span>
|
||
</div>
|
||
<div class="aMes_doi">
|
||
{{ deMesYul.journal_title }}
|
||
<span>https://doi.org/10.53388/{{ deMesYul.doi }}</span>
|
||
</div>
|
||
<div class="aMes_asbimg">
|
||
<img :src="mediaUrl + 'articleicon/' + deMesYul.icon" alt="" />
|
||
<div>
|
||
<p style="font-weight: bold; color: #006699; margin: 10px 0 5px 0" v-html="deMesYul.tradition_tag"></p>
|
||
<p v-html="deMesYul.tradition" style="color: #888; line-height: 20px">{{ deMesYul.tradition }}</p>
|
||
</div>
|
||
<br clear="both" />
|
||
</div>
|
||
</div>
|
||
<span slot="footer" class="dialog-footer">
|
||
<el-button type="primary" @click="preLisVisible = false">OK</el-button>
|
||
</span>
|
||
</el-dialog>
|
||
|
||
<!-- 预览文章-->
|
||
<el-dialog title="" :visible.sync="preArtVisible" width="800px" :close-on-click-modal="false">
|
||
<div class="aArticle">
|
||
<div class="aArt_doi">
|
||
{{ deMesYul.journal_title }}
|
||
<span style="margin: 0 40px">|</span>
|
||
<span>DOI: 10.53388/{{ deMesYul.doi }}</span>
|
||
</div>
|
||
<div class="aArt_tit">
|
||
{{ deMesYul.title }}
|
||
</div>
|
||
<div class="aArt_autor">
|
||
<p v-html="deAuthorYul.author"></p>
|
||
</div>
|
||
<div class="aArt_jigou">
|
||
<p v-for="(item, index) in deAuthorYul.addressList">
|
||
<sup style="margin-right: 5px">{{ index + 1 }}</sup
|
||
>{{ item }}
|
||
</p>
|
||
</div>
|
||
<div class="aArt_abst">
|
||
<div class="titTop">
|
||
<b :class="preactive == 1 ? 'Tab_col' : ''" @click="preactive = 1">Abstract</b>
|
||
<b :class="preactive == 2 ? 'Tab_col' : ''" @click="preactive = 2">Medical history of objective</b>
|
||
<b
|
||
:class="preactive == 3 ? 'Tab_col' : ''"
|
||
@click="preactive = 3"
|
||
v-if="deMesYul.htmlList != '' && deMesYul.htmlList != undefined"
|
||
>Html</b
|
||
>
|
||
</div>
|
||
<p v-if="preactive == 1" v-html="deMesYul.abstract"></p>
|
||
<p v-if="preactive == 2" v-html="deMesYul.mhoo"></p>
|
||
<div v-if="preactive == 3" v-for="(item, index) in deMesYul.htmlList" class="titHtml">
|
||
<p v-html="item.content" v-if="!item.p_main_img_id"></p>
|
||
<p v-if="item.p_main_img_id" class="MaxPicture">
|
||
<img :src="baseUrl + 'public/mainimg/' + item.content" :style="'width:' + item.width + 'px'" />
|
||
<font :style="'width:' + item.width + 'px'">{{ item.note }} </font>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<span slot="footer" class="dialog-footer">
|
||
<el-button type="primary" @click="preArtVisible = false">OK</el-button>
|
||
</span>
|
||
</el-dialog>
|
||
|
||
<el-dialog title="" :visible.sync="communVisible" width="800px" :close-on-click-modal="false">
|
||
<!-- <p
|
||
style="word-break: normal;margin-bottom: 20px;font-size: 15px;font-weight: bold;letter-spacing: -0.5px;line-height: 22px;">
|
||
{{msgform.title}}
|
||
</p> -->
|
||
<div class="talkDialog">
|
||
<timetalk :talkMsgs="talkMsgs" :msgform="msgform" @talksave="talksave"></timetalk>
|
||
</div>
|
||
</el-dialog>
|
||
<el-dialog :title="`Edit`" :visible.sync="finalFeeVisible" width="600px" :close-on-click-modal="false">
|
||
<el-form ref="finalFee" :rules="rules" :model="finalFeeData" label-width="180px">
|
||
<el-form-item :label="$t('pendingPayment.discountprice')" prop="fee" clearable>
|
||
<!-- <commonRemarkList :list="remark.contentList" @load="(e) => (this.remark.contentList = e)"></commonRemarkList> -->
|
||
<el-input v-model="finalFeeData.fee"> <span slot="suffix">USD</span></el-input>
|
||
</el-form-item>
|
||
<el-form-item :label="$t('pendingPayment.youhuiremark')" prop="fee_remark">
|
||
<!-- <commonRemarkList :list="remark.contentList" @load="(e) => (this.remark.contentList = e)"></commonRemarkList> -->
|
||
<el-input type="textarea" rows="5" v-model="finalFeeData.fee_remark"></el-input>
|
||
</el-form-item>
|
||
</el-form>
|
||
<span slot="footer" class="dialog-footer">
|
||
<el-button @click="finalFeeVisible = false">Cancel</el-button>
|
||
<el-button type="primary" @click="saveFinalFee">Save</el-button>
|
||
</span>
|
||
</el-dialog>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import editPublicRefRdit from './editPublicRefRdit'; // 公共引用编辑页面
|
||
import 'quill/dist/quill.core.css';
|
||
import 'quill/dist/quill.snow.css';
|
||
import 'quill/dist/quill.bubble.css';
|
||
import { quillEditor } from 'vue-quill-editor';
|
||
import { Loading } from 'element-ui';
|
||
import timetalk from './time_talk';
|
||
export default {
|
||
props: ['type'],
|
||
data() {
|
||
return {
|
||
finalFeeData: {},
|
||
article_pay_info: {},
|
||
feeStatus: null,
|
||
isShowCommit: false,
|
||
tableData: [],
|
||
talkMsgs: [],
|
||
finalFeeVisible: false,
|
||
FeeVisible: false,
|
||
communVisible: false,
|
||
msgform: {
|
||
username: localStorage.getItem('U_name'),
|
||
article_id: this.$route.query.id,
|
||
user_id: this.$route.query.uid,
|
||
ad_content: ''
|
||
},
|
||
baseUrl: this.Common.baseUrl,
|
||
mediaUrl: this.Common.mediaUrl,
|
||
article_id: this.$route.query.id, // 文章id
|
||
p_article_id: null,
|
||
//p_article_id: 426,
|
||
idform: {},
|
||
imageUrl: '',
|
||
contentStyleObj: {
|
||
height: '100px'
|
||
},
|
||
tabName: 'setOneRef',
|
||
tabClick: 'setOneRef',
|
||
tabsList: [
|
||
// {
|
||
// name: 'Essential Information',
|
||
// refName: 'setOneRef',
|
||
// rongCont: 'Improve and check the basic information of the manuscript.'
|
||
// },
|
||
// {
|
||
// name: 'Author Information',
|
||
// refName: 'setTwoRef',
|
||
// rongCont: 'Please fill in the author information.'
|
||
// },
|
||
// {
|
||
// name: 'Article File',
|
||
// refName: 'setThreeRef',
|
||
// rongCont: 'Please upload the article file.'
|
||
// },
|
||
{
|
||
name: 'Article Processing Charge',
|
||
refName: 'setOneRef',
|
||
rongCont: ''
|
||
},
|
||
{
|
||
name: 'Reference Conversion',
|
||
refName: 'setTwoRef',
|
||
rongCont: 'Revise, check and complete the references of the manuscript.'
|
||
},
|
||
// {
|
||
// name: 'MainText',
|
||
// refName: 'setFiveRef',
|
||
// rongCont: 'Modify the article body.'
|
||
// },
|
||
{
|
||
name: 'Text Proofread',
|
||
refName: 'setThreeRef',
|
||
rongCont: 'HTML layout.'
|
||
}
|
||
// {
|
||
// name: 'Create Build',
|
||
// refName: 'setSevenRef',
|
||
// rongCont: 'Create different types of checked manuscripts and download them.'
|
||
// },
|
||
// {
|
||
// name: 'Proof',
|
||
// refName: 'setEightRef',
|
||
// rongCont: ''
|
||
// }
|
||
],
|
||
detailMes: {
|
||
title: '',
|
||
type: '',
|
||
journal_special_id: 'None'
|
||
},
|
||
opInstal: [],
|
||
// opMedical: [
|
||
// {
|
||
// label: 'None',
|
||
// value: ''
|
||
// },
|
||
// {
|
||
// label: 'ARTICLE',
|
||
// value: 'Article'
|
||
// },
|
||
// {
|
||
// label: 'REVIEW',
|
||
// value: 'Review'
|
||
// },
|
||
// {
|
||
// label: 'CASE REPORT',
|
||
// value: 'Case report'
|
||
// },
|
||
// {
|
||
// label: 'RESEARCH PROPOSAL',
|
||
// value: 'Research proposal'
|
||
// },
|
||
// {
|
||
// label: 'NEWS',
|
||
// value: 'News'
|
||
// },
|
||
// {
|
||
// label: 'COMMENT',
|
||
// value: 'Comment'
|
||
// },
|
||
// {
|
||
// label: 'CORRECTION',
|
||
// value: 'Correction'
|
||
// },
|
||
// {
|
||
// label: 'HYPOTHESIS',
|
||
// value: 'Hypothesis'
|
||
// },
|
||
// {
|
||
// label: 'PREFACE',
|
||
// value: 'Preface'
|
||
// },
|
||
// {
|
||
// label: 'EDITORIAL',
|
||
// value: 'Editorial'
|
||
// },
|
||
// {
|
||
// label: 'REPORT',
|
||
// value: 'Report'
|
||
// },
|
||
// {
|
||
// label: 'LETTER',
|
||
// value: 'Letter'
|
||
// },
|
||
// {
|
||
// label: 'EMPIRICAL FORMULA',
|
||
// value: 'Empirical formula'
|
||
// },
|
||
// {
|
||
// label: 'EVIDENCE-BASED MEDICINE',
|
||
// value: 'Evidence-based medicine'
|
||
// },
|
||
// {
|
||
// label: 'EXPERT CONSENSUS',
|
||
// value: 'Expert consensus'
|
||
// },
|
||
// {
|
||
// label: 'LETTER TO EDITOR',
|
||
// value: 'Letter to editor'
|
||
// },
|
||
// {
|
||
// label: 'QUESTIONNAIRE INVESTIGATION',
|
||
// value: 'Questionnaire investigation'
|
||
// },
|
||
// {
|
||
// label: 'PROTOCOL',
|
||
// value: 'Protocol'
|
||
// },
|
||
// {
|
||
// label: 'CASE SERIES',
|
||
// value: 'Case Series'
|
||
// },
|
||
// {
|
||
// label: 'RETRACTION',
|
||
// value: 'Retraction'
|
||
// },
|
||
// {
|
||
// label: 'MINI REVIEW',
|
||
// value: 'Mini Review'
|
||
// },
|
||
// {
|
||
// label: 'RETRACTION NOTE',
|
||
// value: 'Retraction Note'
|
||
// },
|
||
// {
|
||
// label: '内经难经',
|
||
// value: '内经难经'
|
||
// },
|
||
// {
|
||
// label: '伤寒金匮',
|
||
// value: '伤寒金匮'
|
||
// },
|
||
// {
|
||
// label: '神农本草经',
|
||
// value: '神农本草经'
|
||
// },
|
||
// {
|
||
// label: '温病研究',
|
||
// value: '温病研究'
|
||
// },
|
||
// {
|
||
// label: '唐宋方药',
|
||
// value: '唐宋方药'
|
||
// },
|
||
// {
|
||
// label: '金元各家',
|
||
// value: '金元各家'
|
||
// },
|
||
// {
|
||
// label: '明清经典',
|
||
// value: '明清经典'
|
||
// },
|
||
// {
|
||
// label: '中西汇通',
|
||
// value: '中西汇通'
|
||
// },
|
||
// {
|
||
// label: '太湖选粹',
|
||
// value: '太湖选粹'
|
||
// },
|
||
// {
|
||
// label: '针灸推拿',
|
||
// value: '针灸推拿'
|
||
// },
|
||
// {
|
||
// label: '名医名方',
|
||
// value: '名医名方'
|
||
// },
|
||
// {
|
||
// label: '新冠肺炎',
|
||
// value: '新冠肺炎'
|
||
// },
|
||
// {
|
||
// label: '书评',
|
||
// value: '书评'
|
||
// }
|
||
// ],
|
||
opMedical: [],
|
||
editAuthor: false,
|
||
addAuthor: false,
|
||
editSchool: false,
|
||
addSchool: false,
|
||
authorData: [],
|
||
schoolData: [],
|
||
addFomauthor: {
|
||
is_first: '0',
|
||
is_report: '0',
|
||
organs: []
|
||
},
|
||
editFomauthor: {},
|
||
addFomschool: {},
|
||
editFomschool: {},
|
||
|
||
chanFerForm: [],
|
||
chanFerFormRepeatList: [],
|
||
refProcess: 0,
|
||
refReal: 0,
|
||
refAarray: '',
|
||
placeRef:
|
||
'eg:\n[1]Kagabu M, Nagasawa T, Fukagawa D, et al. Immunotherapy for Uterine Cervical Cancer. Healthcare (Basel). 2019 Sep 17;7(3):108. PMID: 31533297; PMCID: PMC6787701.\nhttps://doi.org/10.3390/healthcare7030108\n\n[2]Small W Jr, Bacon MA, Bajaj A, et al. Cervical cancer: A global health crisis. Cancer. 2017 Jul 1;123(13):2404-2412. Epub 2017 May 2. PMID: 28464289.\nhttps://doi.org/10.1002/cncr.30667\n\n[3]Cohen PA, Jhingran A, Oaknin A, et al. Cervical cancer. Lancet. 2019 Jan 12;393(10167):169-182. PMID: 30638582.\nhttps://doi.org/10.1016/S0140-6736(18)32470-X',
|
||
gridData: '',
|
||
Main_List: [],
|
||
file_picF: [],
|
||
fileL_sub: [],
|
||
fileL_sub2: [],
|
||
fileL_Note: [],
|
||
fileL_Tex: [],
|
||
fileL_Icm: [],
|
||
content: '',
|
||
editorOption: {
|
||
placeholder: 'Please enter...'
|
||
},
|
||
opCountry: [],
|
||
jour_id_: '',
|
||
mechanism: [],
|
||
fol_low: [
|
||
{
|
||
value: 1,
|
||
label: 'Default Template'
|
||
}
|
||
],
|
||
DLfileList: [],
|
||
UpTypeFile: {
|
||
pdf: ''
|
||
},
|
||
UpTyFIle: '',
|
||
shuTter: {
|
||
board: 1
|
||
},
|
||
exegesis: "The following contents'<b></b>,<i></i>'are necessary for the generation phase, please do not delete them!!!",
|
||
onlineVisible: false,
|
||
preLisVisible: false,
|
||
preArtVisible: false,
|
||
prePdfVisible: false,
|
||
preactive: 1,
|
||
deAuthorYul: {},
|
||
deMesYul: {},
|
||
rules: {
|
||
fee: [
|
||
{
|
||
required: true,
|
||
message: 'Please enter the final price after discount',
|
||
trigger: 'blur'
|
||
}
|
||
],
|
||
fee_remark: [
|
||
{
|
||
required: true,
|
||
message: 'Please enter the discount description',
|
||
trigger: 'blur'
|
||
}
|
||
]
|
||
}
|
||
};
|
||
},
|
||
created() {
|
||
this.opMedical = this.$commonJS.opMedicalList();
|
||
this.getPreacceptPayment();
|
||
this.getHight();
|
||
window.addEventListener('resize', this.getHight);
|
||
// this.getData();
|
||
this.getArtcleDetails();
|
||
this.getTalkList();
|
||
|
||
},
|
||
activated() {
|
||
this.opMedical = this.$commonJS.opMedicalList();
|
||
this.getPreacceptPayment();
|
||
this.getHight();
|
||
window.addEventListener('resize', this.getHight);
|
||
// this.getData();
|
||
this.getArtcleDetails();
|
||
this.getTalkList();
|
||
},
|
||
methods: {
|
||
saveFinalFee() {
|
||
this.$refs.finalFee.validate((valid) => {
|
||
if (valid) {
|
||
const integerRegex = /^-?\d+$/;
|
||
if (!integerRegex.test(this.finalFeeData.fee)) {
|
||
this.$message.error('Please enter a valid integer for the final price after discount');
|
||
return false;
|
||
}
|
||
|
||
const load = this.$loading({
|
||
lock: true,
|
||
text: 'Loading...',
|
||
spinner: 'el-icon-loading',
|
||
background: 'rgba(0, 0, 0, 0.7)'
|
||
});
|
||
this.$api
|
||
.post('api/Order/changePrice', {
|
||
article_id: this.$route.query.id,
|
||
editor_id: localStorage.getItem('U_id'),
|
||
fee: Number(this.finalFeeData.fee).toFixed(2),
|
||
fee_remark: this.finalFeeData.fee_remark
|
||
})
|
||
.then((res) => {
|
||
load.close();
|
||
|
||
if (res.code == 0) {
|
||
this.finalFeeVisible = false;
|
||
this.getPreacceptPayment();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
load.close();
|
||
console.log(err);
|
||
});
|
||
} else {
|
||
return false;
|
||
}
|
||
});
|
||
},
|
||
handleEditFee() {
|
||
this.finalFeeVisible = true;
|
||
this.finalFeeData = {
|
||
fee: this.article_pay_info.fee ? Number(this.article_pay_info.fee).toFixed(0) : 0,
|
||
fee_remark: this.article_pay_info.fee_remark
|
||
};
|
||
},
|
||
|
||
formatAmount(amount) {
|
||
return amount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
||
},
|
||
talksave(val) {
|
||
this.msgform.ad_content = '';
|
||
this.getTalkList();
|
||
},
|
||
// 刷新引用组件
|
||
refrashComp() {
|
||
this.$refs.editPublicRefRdit.$forceUpdate();
|
||
console.log('editPublicRefRdit');
|
||
},
|
||
// 跳转邮件
|
||
linkEmail() {
|
||
this.$router.push({
|
||
path: 'articleDetailEmail',
|
||
query: {
|
||
id: this.article_id
|
||
}
|
||
});
|
||
},
|
||
|
||
// 显示即时聊天创口
|
||
chatcommunication() {
|
||
console.log(this.msgform);
|
||
this.communVisible = true;
|
||
},
|
||
// 获取留言列表
|
||
getTalkList() {
|
||
this.$api
|
||
.post('api/Article/getArticleDialogs', {
|
||
article_id: this.$route.query.id
|
||
})
|
||
.then((res) => {
|
||
this.talkMsgs = res.data.dialogs;
|
||
})
|
||
.catch((err) => {
|
||
console.log(err);
|
||
});
|
||
},
|
||
// 获取p_article_id的值
|
||
getArtcleDetails() {
|
||
// 获得文章详情
|
||
const loading = this.$loading({
|
||
lock: true,
|
||
text: 'Loading...',
|
||
spinner: 'el-icon-loading',
|
||
background: 'rgba(0, 0, 0, 0.7)'
|
||
});
|
||
this.$api
|
||
.post('api/Article/getPreacceptArticleDetail', { article_id: this.article_id })
|
||
.then((res) => {
|
||
loading.close();
|
||
this.p_article_id = res.data.production.p_article_id;
|
||
if (this.p_article_id != null) {
|
||
this.getData();
|
||
this.getAuthorJG();
|
||
this.getCount();
|
||
this.getWorldPdf();
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
loading.close();
|
||
});
|
||
},
|
||
getPreacceptPayment() {
|
||
this.isShowCommit = false;
|
||
this.$api
|
||
.post('api/Preaccept/getPreacceptPayment', {
|
||
article_id: this.$route.query.id
|
||
})
|
||
.then((res) => {
|
||
|
||
if (res.code == 0) {
|
||
this.article_pay_info = {
|
||
fee: res.data.article ? res.data.article.fee : 0,
|
||
is_buy: res.data.article ? res.data.article.is_buy : 0,
|
||
original_price: res.data.journal ? res.data.journal.fee : 0,
|
||
fee_remark: res.data.article ? res.data.article.fee_remark : '',
|
||
order: res.data.order,
|
||
paystation_fee: res.data.order && res.data.order.paystation ? res.data.order.paystation.amount : '',
|
||
paystation_time: res.data.order && res.data.order.paystation ? res.data.order.paystation.request_time : '',
|
||
paystation_currency: res.data.order && res.data.order.paystation ? res.data.order.paystation.currency : ''
|
||
};
|
||
|
||
if (this.article_pay_info.is_buy == 1) {
|
||
if (Number(this.article_pay_info.fee) == 0) {
|
||
|
||
this.feeStatus = 2;
|
||
|
||
} else {
|
||
this.feeStatus = 1;
|
||
}
|
||
} else {
|
||
this.feeStatus = 0;
|
||
}
|
||
this.tableData = [{ ...this.article_pay_info }];
|
||
|
||
this.isShowCommit = this.article_pay_info.is_buy == 1 ? true : false;
|
||
console.log(this.isShowCommit);
|
||
}
|
||
});
|
||
},
|
||
getData() {
|
||
this.idform.p_article_id = this.p_article_id;
|
||
this.detailMes.p_article_id = this.p_article_id;
|
||
this.addFomauthor.p_article_id = this.p_article_id;
|
||
this.addFomschool.p_article_id = this.p_article_id;
|
||
this.UpTypeFile.p_article_id = this.p_article_id;
|
||
|
||
const loading = this.$loading({
|
||
lock: true,
|
||
text: 'Loading...',
|
||
spinner: 'el-icon-loading',
|
||
background: 'rgba(0, 0, 0, 0.7)'
|
||
});
|
||
|
||
// 获取文章信息
|
||
this.$api
|
||
.post('api/Production/getProductionDetail', this.idform)
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.detailMes = res.data.production;
|
||
this.UpTyFIle = res.data.production.file_pdf;
|
||
|
||
if (res.data.production.icon != '') {
|
||
this.imageUrl = this.mediaUrl + 'articleicon/' + res.data.production.icon;
|
||
}
|
||
if (res.data.production.file_pdf != '') {
|
||
this.file_picF = [{}];
|
||
this.file_picF[0].name = 'articlePDF';
|
||
this.file_picF[0].url = this.mediaUrl + 'articlePDF/' + res.data.production.file_pdf;
|
||
}
|
||
if (res.data.production.file_sub != '') {
|
||
this.fileL_sub = [{}];
|
||
this.fileL_sub[0].name = 'articleSUB';
|
||
this.fileL_sub[0].url = this.mediaUrl + 'articleSUB/' + res.data.production.file_sub;
|
||
}
|
||
if (res.data.production.file_sub2 != '') {
|
||
this.fileL_sub2 = [{}];
|
||
this.fileL_sub2[0].name = 'articleSUB2';
|
||
this.fileL_sub2[0].url = this.mediaUrl + 'articleSUB2/' + res.data.production.file_sub2;
|
||
}
|
||
if (res.data.production.endnote != '') {
|
||
this.fileL_Note = [{}];
|
||
this.fileL_Note[0].name = 'endNote';
|
||
this.fileL_Note[0].url = this.mediaUrl + 'endNote/' + res.data.production.endnote;
|
||
}
|
||
if (res.data.production.bibtex != '') {
|
||
this.fileL_Tex = [{}];
|
||
this.fileL_Tex[0].name = 'bibTex';
|
||
this.fileL_Tex[0].url = this.mediaUrl + 'bibTex/' + res.data.production.bibtex;
|
||
}
|
||
if (res.data.production.file_cdf != '') {
|
||
this.fileL_Icm = [{}];
|
||
this.fileL_Icm[0].name = 'articleCDF';
|
||
this.fileL_Icm[0].url = this.mediaUrl + 'articleCDF/' + res.data.production.file_cdf;
|
||
}
|
||
|
||
|
||
|
||
this.CSonline();
|
||
|
||
// 获取分期信息
|
||
this.$api
|
||
.post('api/Typeset/getStagesOnline', {
|
||
journal_id: this.detailMes.journal_id
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.opInstal = res.data.stages;
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
|
||
// 下载稿件列表
|
||
this.$api
|
||
.post('api/Article/getFilesForArticle', {
|
||
article_id: this.detailMes.article_id,
|
||
type: 'm'
|
||
})
|
||
.then((res) => {
|
||
this.gridData = res.data.files[res.data.files.length - 1].file_url;
|
||
})
|
||
.catch((err) => {
|
||
console.log(err);
|
||
});
|
||
|
||
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
loading.close();
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
loading.close();
|
||
});
|
||
|
||
// 获取参考文献
|
||
this.$api
|
||
.post('api/Production/getReferList', {
|
||
p_article_id: this.p_article_id
|
||
})
|
||
.then((res) => { loading.close();
|
||
this.chanFerForm = res.data.refers;
|
||
this.chanFerFormRepeatList = Object.values(res.data.repeat);
|
||
|
||
for (var i = 0; i < this.chanFerForm.length; i++) {
|
||
this.chanFerForm[i].edit_mark = 1;
|
||
if (this.chanFerForm[i].refer_frag != '') {
|
||
this.showB_step = 2;
|
||
}
|
||
}
|
||
this.$nextTick(() => {
|
||
// 更新引用列表
|
||
if(this.$refs.editPublicRefRdit){
|
||
this.$refs.editPublicRefRdit.init(this.chanFerForm);
|
||
}
|
||
|
||
});
|
||
})
|
||
.catch((err) => {
|
||
loading.close();
|
||
console.log(err);
|
||
});
|
||
|
||
// 预览
|
||
this.$api
|
||
.post('api/Production/getProductionPreview', {
|
||
p_article_id: this.p_article_id
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.deAuthorYul = res.data.author;
|
||
this.deMesYul = res.data.production;
|
||
// this.deMesYul.journal_title = res.data.journal.title
|
||
this.deMesYul.journal_title = 3333;
|
||
let reg = new RegExp('<q>', 'g');
|
||
let reb = new RegExp('</q>', 'g');
|
||
this.deAuthorYul.author = this.deAuthorYul.author.replace(reg, '<sup>');
|
||
this.deAuthorYul.author = this.deAuthorYul.author.replace(reb, '</sup>,<span style="margin-left:8px"></span>');
|
||
let lastIndex = this.deAuthorYul.author.lastIndexOf(',');
|
||
this.deAuthorYul.author =
|
||
this.deAuthorYul.author.substring(0, lastIndex) +
|
||
this.deAuthorYul.author.substring(lastIndex + 1, this.deAuthorYul.author.length);
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
},
|
||
|
||
getWorldPdf() {
|
||
// 可以下载的word列表
|
||
this.$api
|
||
.post('api/Production/getArticleFrags', {
|
||
p_article_id: this.p_article_id
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.DLfileList = res.data.frags;
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
},
|
||
|
||
getCount() {
|
||
// 获取国家列表
|
||
this.$api
|
||
.post('api/Admin/getCountrys')
|
||
.then((res) => {
|
||
this.opCountry = res;
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
},
|
||
|
||
getAuthorJG() {
|
||
// 获取作者列表
|
||
this.$api
|
||
.post('api/Production/getAuthorlist', this.idform)
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.authorData = res.data.authors;
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
|
||
// 获取机构列表
|
||
this.$api
|
||
.post('api/Production/getOrganList', this.idform)
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.schoolData = res.data.organs;
|
||
this.mechanism = res.data.organs;
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
},
|
||
|
||
// 1----时间初始化
|
||
CSonline() {
|
||
if (this.detailMes.pub_date != '') {
|
||
this.detailMes.pubDate = '';
|
||
let date = this.detailMes.pub_date;
|
||
let dataM = date.split(' ')[1];
|
||
let Y = date.substring(date.lastIndexOf('\ ') + 1, date.length);
|
||
let M = 0;
|
||
let D = date.split(' ')[0];
|
||
if (dataM == 'January') {
|
||
M = 1;
|
||
} else if (dataM == 'February') {
|
||
M = 2;
|
||
} else if (dataM == 'March') {
|
||
M = 3;
|
||
} else if (dataM == 'April') {
|
||
M = 4;
|
||
} else if (dataM == 'May') {
|
||
M = 5;
|
||
} else if (dataM == 'June') {
|
||
M = 6;
|
||
} else if (dataM == 'July') {
|
||
M = 7;
|
||
} else if (dataM == 'August') {
|
||
M = 8;
|
||
} else if (dataM == 'September') {
|
||
M = 9;
|
||
} else if (dataM == 'October') {
|
||
M = 10;
|
||
} else if (dataM == 'November') {
|
||
M = 11;
|
||
} else if (dataM == 'December') {
|
||
M = 12;
|
||
}
|
||
this.detailMes.pubDate = Y + '-' + M + '-' + D;
|
||
}
|
||
},
|
||
|
||
// 1----转化日期格式
|
||
dateBlur(e) {
|
||
//1
|
||
this.$forceUpdate();
|
||
//2、或者自己修改数据监听的最新数据
|
||
this.itemKey = Math.random();
|
||
let date = new Date(e);
|
||
let Y = date.getFullYear();
|
||
let M = date.getMonth() + 1;
|
||
let D = date.getDate();
|
||
if (M == 1) {
|
||
M = 'January';
|
||
} else if (M == 2) {
|
||
M = 'February';
|
||
} else if (M == 3) {
|
||
M = 'March';
|
||
} else if (M == 4) {
|
||
M = 'April';
|
||
} else if (M == 5) {
|
||
M = 'May';
|
||
} else if (M == 6) {
|
||
M = 'June';
|
||
} else if (M == 7) {
|
||
M = 'July';
|
||
} else if (M == 8) {
|
||
M = 'August';
|
||
} else if (M == 9) {
|
||
M = 'September';
|
||
} else if (M == 10) {
|
||
M = 'October';
|
||
} else if (M == 11) {
|
||
M = 'November';
|
||
} else if (M == 12) {
|
||
M = 'December';
|
||
}
|
||
this.detailMes.pub_date = D + ' ' + M + ' ' + Y;
|
||
},
|
||
|
||
// 1----分期组合格式
|
||
neYStage(e) {
|
||
return e.stage_year + ' Vol.' + e.stage_vol + ' issue.' + e.stage_no + e.stage_pagename + e.stage_page;
|
||
},
|
||
|
||
|
||
|
||
// 2----添加作者操作
|
||
add_Authorclick(index, row) {
|
||
this.aid = index;
|
||
this.addAuthor = true;
|
||
},
|
||
authorAdd(addFomauthor) {
|
||
this.$refs.add_Author.validate((valid) => {
|
||
if (valid) {
|
||
this.$api
|
||
.post('api/Production/addAuthor', this.addFomauthor)
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.addAuthor = false;
|
||
this.$refs.add_Author.resetFields();
|
||
this.addFomauthor.organs = [];
|
||
this.getAuthorJG();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
} else {
|
||
this.$message.error('error submit!!');
|
||
return false;
|
||
}
|
||
});
|
||
},
|
||
handleCheckedCitiesChange(value) {},
|
||
// 2----编辑作者操作
|
||
authorhandEdit(index, row) {
|
||
this.idx = index;
|
||
this.editFomauthor = Object.assign({}, row);
|
||
this.editAuthor = true;
|
||
let xzjg_list = [];
|
||
for (var i = 0; i < this.editFomauthor.organs.length; i++) {
|
||
xzjg_list.push(this.editFomauthor.organs[i].p_article_organ_id + '');
|
||
}
|
||
this.editFomauthor.organs = xzjg_list;
|
||
},
|
||
authorEdit(editFomauthor) {
|
||
this.$refs.edit_Author.validate((valid) => {
|
||
if (valid) {
|
||
this.$api
|
||
.post('api/Production/editAuthor', this.editFomauthor)
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.editAuthor = false;
|
||
this.$message.success(`Successfully changed the author of line ${this.idx + 1} !`);
|
||
this.getAuthorJG();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
} else {
|
||
this.$message.error('error submit!!');
|
||
return false;
|
||
}
|
||
});
|
||
},
|
||
// 2----删除作者
|
||
authorDelete(index, row) {
|
||
// 二次确认删除
|
||
this.$confirm('Whether to delete the authors joint and several institutional relationships?', 'Tips', {
|
||
type: 'warning'
|
||
})
|
||
.then(() => {
|
||
this.$api
|
||
.post('api/Production/delAuthor', row)
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('Deletion succeeded!');
|
||
this.getAuthorJG();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
})
|
||
.catch(() => {});
|
||
},
|
||
// 2----添加机构操作
|
||
add_Schoolclick(index, row) {
|
||
this.aid = index;
|
||
this.addSchool = true;
|
||
},
|
||
schoolAdd(addFomschool) {
|
||
this.$refs.add_School.validate((valid) => {
|
||
if (valid) {
|
||
this.$api
|
||
.post('api/Production/addAuthorOrgan', this.addFomschool)
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.addSchool = false;
|
||
this.$refs.add_School.resetFields();
|
||
this.getAuthorJG();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
} else {
|
||
this.$message.error('error submit!!');
|
||
return false;
|
||
}
|
||
});
|
||
},
|
||
// 2----编辑机构操作
|
||
schoolhandEdit(index, row) {
|
||
this.idx = index;
|
||
this.editFomschool = Object.assign({}, row);
|
||
this.editSchool = true;
|
||
},
|
||
schoolEdit(editFomschool) {
|
||
this.$refs.edit_School.validate((valid) => {
|
||
if (valid) {
|
||
this.$api
|
||
.post('api/Production/editAuthorOrgan', this.editFomschool)
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.editSchool = false;
|
||
this.$message.success(`Successfully changed the mechanism of row ${this.idx + 1} !`);
|
||
this.getAuthorJG();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
} else {
|
||
this.$message.error('error submit!!');
|
||
return false;
|
||
}
|
||
});
|
||
},
|
||
// 2----删除机构
|
||
schoolDelete(index, row) {
|
||
// 二次确认删除
|
||
this.$confirm('Do you want to delete the author relationship between the organization and its associated authors?', 'Tips', {
|
||
type: 'warning'
|
||
})
|
||
.then(() => {
|
||
this.$api
|
||
.post('api/Production/delAuthorOrgan', row)
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('Deletion succeeded!');
|
||
this.getAuthorJG();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
})
|
||
.catch(() => {});
|
||
},
|
||
|
||
// 4----删除MainText
|
||
MTxtDelet(c, v) {
|
||
this.Main_List.splice(v, 1);
|
||
},
|
||
|
||
// 4----保存MainText
|
||
mtxt_save() {
|
||
let ts_main = [];
|
||
for (let i in this.Main_List) {
|
||
ts_main.push(this.Main_List[i].name);
|
||
}
|
||
ts_main = JSON.stringify(ts_main);
|
||
|
||
this.$api
|
||
.post('api/Production/editMainContent', {
|
||
p_article_id: this.p_article_id,
|
||
main: ts_main
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('Successfully modified the article body!');
|
||
this.getData();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
},
|
||
|
||
//5----参考文献左侧步骤条
|
||
StepBNext(e) {
|
||
this.showB_step = e;
|
||
},
|
||
|
||
//5----按钮每一步操作
|
||
StepBOper(e) {
|
||
if (e == 1) {
|
||
window.open(`/References`, '_blank', 'width=1000,height=800,scrollbars=no,resizable=no');
|
||
// 弹出新的页面粘贴DOI
|
||
// window.open(
|
||
// 'https://apps.crossref.org/SimpleTextQuery',
|
||
// '_blank',
|
||
// 'width=900,height=600,toolbar=no,scrollbars=no,menubar=no,screenX=240,screenY=100'
|
||
// );
|
||
} else if (e == 2) {
|
||
// 发送转化为标准格式
|
||
let refAarray_list = [];
|
||
if (this.refAarray != '') {
|
||
refAarray_list = this.refAarray.split(/[\r\n\r\n]/);
|
||
for (var i = 0; i < refAarray_list.length; i++) {
|
||
if (refAarray_list[i] == ' ' || refAarray_list[i] == '') {
|
||
refAarray_list.splice(i, 1);
|
||
i = i - 1;
|
||
}
|
||
if (refAarray_list[i].indexOf('https://') == 0) {
|
||
refAarray_list[i - 1] = refAarray_list[i - 1] + refAarray_list[i];
|
||
refAarray_list.splice(i, 1);
|
||
i = i - 1;
|
||
}
|
||
}
|
||
|
||
// 参考文献接口
|
||
this.$api
|
||
.post('api/Production/freshRefers', {
|
||
refers: refAarray_list,
|
||
p_article_id: this.p_article_id
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
// 获取进度百分比
|
||
this.refProcess = 1;
|
||
this.refReal = 0;
|
||
let timeRef = setInterval(() => {
|
||
this.$api
|
||
.post('api/Production/getFragBF', {
|
||
p_article_id: this.p_article_id
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
if (res.data.bf < 100) {
|
||
this.refReal = res.data.bf;
|
||
} else {
|
||
clearInterval(timeRef);
|
||
this.refProcess = 0;
|
||
this.$message.success('Successfully converted to standard format!');
|
||
this.changeRefer();
|
||
this.showB_step = 2;
|
||
}
|
||
} else {
|
||
this.refProcess = 0;
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.refProcess = 0;
|
||
console.log(err);
|
||
});
|
||
}, 3000);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
console.log(err);
|
||
});
|
||
} else {
|
||
this.$message.error('Please fill in the content!');
|
||
}
|
||
}
|
||
},
|
||
|
||
// 5----数组排序
|
||
DownNumber(a, b) {
|
||
return a > b ? 1 : -1;
|
||
},
|
||
|
||
// 5----重新获取加载参考文献
|
||
changeRefer(val) {
|
||
|
||
this.$api
|
||
.post('api/Production/getReferList', {
|
||
p_article_id: this.p_article_id
|
||
})
|
||
.then((res) => {
|
||
this.chanFerForm = res.data.refers;
|
||
this.chanFerFormRepeatList = Object.values(res.data.repeat);
|
||
for (var i = 0; i < this.chanFerForm.length; i++) {
|
||
this.chanFerForm[i].edit_mark = 1;
|
||
}
|
||
|
||
})
|
||
.catch((err) => {
|
||
console.log(err);
|
||
});
|
||
},
|
||
|
||
// 5----点击修改参考文献
|
||
referMark(e) {
|
||
this.chanFerForm[e].edit_mark = 0;
|
||
this.$forceUpdate();
|
||
},
|
||
|
||
// 5----参考文献修改最终结果
|
||
ChanFerEditFrag(e, v) {
|
||
e.article_id = this.acticleId;
|
||
this.$api
|
||
.post('api/Production/editReferFrag', e)
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('Successfully modified the standard format!');
|
||
this.changeRefer(e);
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
console.log(err);
|
||
});
|
||
},
|
||
|
||
// 5----参考文献向上合并
|
||
ChanFerMashUp(e) {
|
||
console.log(e);
|
||
this.$api
|
||
.post('api/Production/referHB', e)
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.changeRefer(e);
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
console.log(err);
|
||
});
|
||
},
|
||
|
||
// 5----进度条颜色
|
||
customColorMethod(percentage) {
|
||
if (percentage < 20) {
|
||
return '#f95f30';
|
||
} else if (percentage < 40) {
|
||
return '#f6ac3d';
|
||
} else if (percentage < 60) {
|
||
return '#e6a23c';
|
||
} else if (percentage < 80) {
|
||
return '#afbd0d';
|
||
} else {
|
||
return '#79bd0d';
|
||
}
|
||
},
|
||
|
||
// 6----模板选择
|
||
select_tem() {},
|
||
|
||
// 6----创建文章
|
||
// 6----校对文章
|
||
htmlContet() {
|
||
window.open(
|
||
this.$router.resolve({
|
||
path: '/GenerateCharts',
|
||
query: {
|
||
id: this.$route.query.id
|
||
}
|
||
}).href,
|
||
'_blank'
|
||
);
|
||
},
|
||
|
||
// 6----修改时间为年月日
|
||
modifDate(e) {
|
||
let date = new Date(parseInt(e));
|
||
let Y = date.getFullYear() + '-';
|
||
let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() + 1 + '-';
|
||
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||
let H = date.getHours() < 10 ? '0' + date.getHours() + ':' : date.getHours() + ':';
|
||
let U = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
|
||
return Y + M + D + ' ' + H + U;
|
||
},
|
||
|
||
// 6----保存稿件信息
|
||
ZsSaveAbs() {
|
||
this.$refs.Abs_Form.validate((valid) => {
|
||
if (valid) {
|
||
this.$api
|
||
.post('api/Production/editArticleLast', {
|
||
p_article_id: this.detailMes.p_article_id,
|
||
abstract: this.detailMes.abstract,
|
||
doi: this.detailMes.doi,
|
||
pub_date: this.detailMes.pub_date
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success(`Successfully save the article!`);
|
||
this.getData();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
} else {
|
||
this.$message.error('error submit!!');
|
||
return false;
|
||
}
|
||
});
|
||
},
|
||
|
||
// 6----文件上传
|
||
beforeupload_UpTy(file) {},
|
||
uperr_UpTy(err) {
|
||
this.$message.error('upload error');
|
||
},
|
||
upSuccess_UpTy(res, file) {
|
||
if (res.code == 0) {
|
||
this.UpTypeFile.pdf = 'pdf/' + res.upurl;
|
||
this.$api
|
||
.post('api/Production/updateArticlePdf', this.UpTypeFile)
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('Upload PDF succeeded!');
|
||
this.$refs.uploadUpty.clearFiles();
|
||
this.UpTypeFile.pdf = '';
|
||
this.getData();
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
} else {
|
||
this.$message.error('service error:' + res.msg);
|
||
}
|
||
},
|
||
removefileUpTy(file, fileList) {
|
||
this.UpTypeFile.pdf = '';
|
||
},
|
||
alertlimit() {
|
||
this.$message.error('The maximum number of uploaded files has been exceeded');
|
||
},
|
||
|
||
// 7-----等待作者确定
|
||
TjQdingFirm() {
|
||
if (this.UpTyFIle == '') {
|
||
this.$message.error('Please upload PDF first!');
|
||
return;
|
||
}
|
||
this.$refs.Mes_Form.validate((valid) => {
|
||
if (valid) {
|
||
this.$confirm('Are you sure to submit to the author for confirmation?', 'Tips', {
|
||
confirmButtonText: 'OK',
|
||
cancelButtonText: 'Cancel',
|
||
type: 'warning'
|
||
})
|
||
.then(() => {
|
||
const loading = this.$loading({
|
||
lock: true,
|
||
text: 'Loading...',
|
||
spinner: 'el-icon-loading',
|
||
background: 'rgba(0, 0, 0, 0.7)'
|
||
});
|
||
this.$api
|
||
.post('api/Production/pushProof', {
|
||
p_article_id: this.detailMes.p_article_id
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('Proof succeeded!');
|
||
loading.close();
|
||
localStorage.setItem('U_point', 3);
|
||
localStorage.setItem('U_pointJour', this.detailMes.journal_id);
|
||
this.$router.push('/articleListEditor');
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
loading.close();
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
loading.close();
|
||
});
|
||
})
|
||
.catch(() => {});
|
||
} else {
|
||
this.$message.error('Please complete Essential Information first!');
|
||
this.jumpTab(0, this.tabsList[0]);
|
||
return false;
|
||
}
|
||
});
|
||
},
|
||
|
||
// 1----上传图片
|
||
handleAvatarSuccess(res, file) {
|
||
if (res.code == 0) {
|
||
this.detailMes.icon = res.upurl;
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
this.imageUrl = URL.createObjectURL(file.raw);
|
||
},
|
||
handleAvatarError(res, file) {},
|
||
beforeAvatarUpload(file) {
|
||
const isLt2M = file.size / 1024 / 1024 < 1;
|
||
if (!isLt2M) {
|
||
this.$message.error('Picture size cannot exceed 1M!');
|
||
}
|
||
return isLt2M;
|
||
},
|
||
|
||
// 3----上传文件
|
||
handleChangeF(file, fileList) {
|
||
if (fileList.length > 0) {
|
||
this.file_picF = [fileList[fileList.length - 1]];
|
||
}
|
||
},
|
||
handleChange3(file, fileList) {
|
||
if (fileList.length > 0) {
|
||
this.fileL_sub = [fileList[fileList.length - 1]];
|
||
}
|
||
},
|
||
handleChange4(file, fileList) {
|
||
if (fileList.length > 0) {
|
||
this.fileL_sub2 = [fileList[fileList.length - 1]];
|
||
}
|
||
},
|
||
handleChange5(file, fileList) {
|
||
if (fileList.length > 0) {
|
||
this.fileL_Note = [fileList[fileList.length - 1]];
|
||
}
|
||
},
|
||
handleChange6(file, fileList) {
|
||
if (fileList.length > 0) {
|
||
this.fileL_Tex = [fileList[fileList.length - 1]];
|
||
}
|
||
},
|
||
handleChange7(file, fileList) {
|
||
if (fileList.length > 0) {
|
||
this.fileL_Icm = [fileList[fileList.length - 1]];
|
||
}
|
||
},
|
||
|
||
// 3----上传文件
|
||
handleFileSuccess3(res, file) {
|
||
if (res.code == 0) {
|
||
this.$api
|
||
.post('api/Production/editArticleFile', {
|
||
p_article_id: this.p_article_id,
|
||
filetype: 'SUB',
|
||
fileURL: res.upurl
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('SUB File upload succeeded!');
|
||
this.getData();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
},
|
||
handleFileSuccess4(res, file) {
|
||
if (res.code == 0) {
|
||
this.$api
|
||
.post('api/Production/editArticleFile', {
|
||
p_article_id: this.p_article_id,
|
||
filetype: 'SUB2',
|
||
fileURL: res.upurl
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('SUB2 File upload succeeded!');
|
||
this.getData();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
},
|
||
handleFileSuccess5(res, file) {
|
||
if (res.code == 0) {
|
||
this.$api
|
||
.post('api/Production/editArticleFile', {
|
||
p_article_id: this.p_article_id,
|
||
filetype: 'endNote',
|
||
fileURL: res.upurl
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('EndNote File upload succeeded!');
|
||
this.getData();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
},
|
||
handleFileSuccess6(res, file) {
|
||
if (res.code == 0) {
|
||
this.$api
|
||
.post('api/Production/editArticleFile', {
|
||
p_article_id: this.p_article_id,
|
||
filetype: 'bibTex',
|
||
fileURL: res.upurl
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('BibTeX File upload succeeded!');
|
||
this.getData();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
},
|
||
handleFileSuccess7(res, file) {
|
||
if (res.code == 0) {
|
||
this.$api
|
||
.post('api/Production/editArticleFile', {
|
||
p_article_id: this.p_article_id,
|
||
filetype: 'CDF',
|
||
fileURL: res.upurl
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('ICMJE DISCLOSURE FORM File upload succeeded!');
|
||
this.getData();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
},
|
||
handleFileError(res, file) {},
|
||
handleRemove(file, fileList) {},
|
||
handlePreview(file) {
|
||
window.open(file.url);
|
||
},
|
||
handleExceed(files, fileList) {
|
||
this.$message.warning('The current limit is 1 file. Please delete the current file first!');
|
||
},
|
||
// 3----删除文件
|
||
beforeRemove3(file, fileList) {
|
||
return this.$confirm(`Are you sure to remove ${file.name}?`).then(() => {
|
||
this.$api
|
||
.post('master/Article/editArticleFile', {
|
||
p_article_id: this.p_article_id,
|
||
filetype: 'SUB',
|
||
fileURL: ''
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('SUB File deleted successfully!');
|
||
this.getData();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
});
|
||
},
|
||
beforeRemove4(file, fileList) {
|
||
return this.$confirm(`Are you sure to remove ${file.name}?`).then(() => {
|
||
this.$api
|
||
.post('master/Article/editArticleFile', {
|
||
p_article_id: this.p_article_id,
|
||
filetype: 'SUB2',
|
||
fileURL: ''
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('SUB2 File deleted successfully!');
|
||
this.getData();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
});
|
||
},
|
||
beforeRemove5(file, fileList) {
|
||
return this.$confirm(`Are you sure to remove ${file.name}?`).then(() => {
|
||
this.$api
|
||
.post('master/Article/editArticleFile', {
|
||
p_article_id: this.p_article_id,
|
||
filetype: 'endNote',
|
||
fileURL: ''
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('EndNote File deleted successfully!');
|
||
this.getData();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
});
|
||
},
|
||
beforeRemove6(file, fileList) {
|
||
return this.$confirm(`Are you sure to remove ${file.name}?`).then(() => {
|
||
this.$api
|
||
.post('master/Article/editArticleFile', {
|
||
p_article_id: this.p_article_id,
|
||
filetype: 'bibTex',
|
||
fileURL: ''
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('BibTeX File deleted successfully!');
|
||
this.getData();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
});
|
||
},
|
||
beforeRemove7(file, fileList) {
|
||
return this.$confirm(`Are you sure to remove${file.name}?`).then(() => {
|
||
this.$api
|
||
.post('master/Article/editArticleFile', {
|
||
p_article_id: this.p_article_id,
|
||
filetype: 'CDF',
|
||
fileURL: ''
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('ICMJE DISCLOSURE FORM File deleted successfully!');
|
||
this.getData();
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
});
|
||
},
|
||
|
||
// 富文本编辑器
|
||
onEditorChange({ editor, html, text }) {
|
||
this.content = html;
|
||
},
|
||
|
||
// 提交到 accept
|
||
pushToAccept(detailMes) {
|
||
if (!this.isShowCommit) {
|
||
this.$message.error('The manuscript has not been paid, please contact the author promptly for payment');
|
||
return false;
|
||
}
|
||
|
||
this.$confirm(`Are you sure you want to adjust this article status to 'accept'?`, 'Prompt', {
|
||
confirmButtonText: 'Yes',
|
||
cancelButtonText: 'Cancle',
|
||
type: 'warning'
|
||
})
|
||
.then(() => {
|
||
this.$api
|
||
.post('api/Article/articleAccept', {
|
||
article_id: this.$route.query.id
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
// console.log(res, 'res')
|
||
this.$message.success('successed!');
|
||
setTimeout(() => {
|
||
this.$router.push({
|
||
path: 'articleListEditor',
|
||
params: { state: 6 }
|
||
});
|
||
}, 1000);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
console.log(err);
|
||
});
|
||
})
|
||
.catch(() => {});
|
||
},
|
||
pushToProduce(detailMes) {
|
||
// if (!this.isShowCommit) {
|
||
// this.$message.error('The manuscript has not been paid, please contact the author promptly for payment');
|
||
// return false;
|
||
// }
|
||
|
||
// this.$confirm(`Please confirm if you would like to push this article to the production stage?`, 'Prompt', {
|
||
// confirmButtonText: 'Yes',
|
||
// cancelButtonText: 'Cancle',
|
||
// type: 'warning'
|
||
// })
|
||
// .then(() => {
|
||
const load = this.$loading({
|
||
lock: true,
|
||
text: 'Loading...',
|
||
spinner: 'el-icon-loading',
|
||
background: 'rgba(0, 0, 0, 0.7)'
|
||
});
|
||
this.$api
|
||
.post('api/Preaccept/beginProduce', {
|
||
article_id: this.$route.query.id
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
load.close();
|
||
// this.$message.success('successed!');
|
||
// setTimeout(() => {
|
||
// localStorage.setItem('U_point', 2);
|
||
// this.$router.push({
|
||
// path: 'articleListEditor'
|
||
// });
|
||
// }, 1000);
|
||
} else {
|
||
load.close();
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
load.close();
|
||
this.$message.error(err);
|
||
});
|
||
// })
|
||
// .catch(() => {});
|
||
},
|
||
// 点击开始上线显示
|
||
pushOnline(detailMes) {
|
||
if (this.authorData.length == 0) {
|
||
this.$message.error('Please complete the author information!');
|
||
return;
|
||
}
|
||
this.$refs.Mes_Form.validate((valid) => {
|
||
if (valid) {
|
||
this.onlineVisible = true;
|
||
} else {
|
||
this.$message.error('Please complete Essential Information first!');
|
||
this.jumpTab(0, this.tabsList[0]);
|
||
return false;
|
||
}
|
||
});
|
||
},
|
||
|
||
// 预览列表
|
||
gOpreviewList() {
|
||
this.preLisVisible = true;
|
||
},
|
||
|
||
// 预览文章
|
||
gOpreviewArt() {
|
||
// 获取文章信息
|
||
this.$api
|
||
.post('api/Production/getProductionMains', {
|
||
p_article_id: this.p_article_id
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.deMesYul.htmlList = res.data.mains;
|
||
this.preArtVisible = true;
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
});
|
||
},
|
||
|
||
// 预览pdf
|
||
gOpreviewPDF() {
|
||
if (this.UpTyFIle == '') {
|
||
this.$message.error('Please upload PDF first!');
|
||
return;
|
||
} else {
|
||
let urlBlan = this.baseUrl + 'public/' + this.UpTyFIle;
|
||
window.open(urlBlan, '_blank');
|
||
}
|
||
},
|
||
|
||
// 上线
|
||
gOline() {
|
||
if (this.UpTyFIle == '') {
|
||
this.$message.error('Please upload PDF first!');
|
||
return;
|
||
}
|
||
// 二次确认
|
||
this.$confirm('Are you sure you want to push this manuscript to the official website?', 'Tips', {
|
||
confirmButtonText: 'OK',
|
||
cancelButtonText: 'Cancel',
|
||
type: 'warning'
|
||
})
|
||
.then(() => {
|
||
const loading = this.$loading({
|
||
lock: true,
|
||
text: 'Loading...',
|
||
spinner: 'el-icon-loading',
|
||
background: 'rgba(0, 0, 0, 0.7)'
|
||
});
|
||
this.$api
|
||
.post('api/Production/pushArticleToSystem', {
|
||
p_article_id: this.detailMes.p_article_id
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.$message.success('Creat Online succeeded!');
|
||
loading.close();
|
||
localStorage.setItem('U_point', 3);
|
||
localStorage.setItem('U_pointJour', this.detailMes.journal_id);
|
||
this.$router.push('/articleListEditor');
|
||
} else {
|
||
this.$message.error(res.msg);
|
||
loading.close();
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
this.$message.error(err);
|
||
loading.close();
|
||
});
|
||
})
|
||
.catch(() => {});
|
||
},
|
||
|
||
// tab click锚点滚动
|
||
jumpTab(tab, event) {
|
||
this.tabClick = event.refName;
|
||
let target = document.querySelector('.scroll-content');
|
||
// console.log(target)
|
||
let scrollItems = document.querySelectorAll('.scroll-item');
|
||
// 判断滚动条是否滚动到底部
|
||
if (target.scrollHeight <= target.scrollTop + target.clientHeight) {
|
||
this.tabIndex = tab;
|
||
}
|
||
let totalY = scrollItems[tab].offsetTop - scrollItems[0].offsetTop; // 锚点元素距离其offsetParent(这里是body)顶部的距离(待滚动的距离)
|
||
let distance = document.querySelector('.scroll-content').scrollTop; // 滚动条距离滚动区域顶部的距离
|
||
// let distance = document.body.scrollTop || document.documentElement.scrollTop || window.pageYOffset // 滚动条距离滚动区域顶部的距离(滚动区域为窗口)
|
||
// 滚动动画实现, 使用setTimeout的递归实现平滑滚动,将距离细分为50小段,10ms滚动一次
|
||
// 计算每一小段的距离
|
||
let step = totalY / 50;
|
||
if (totalY > distance) {
|
||
smoothDown(document.querySelector('.scroll-content'));
|
||
} else {
|
||
let newTotal = distance - totalY;
|
||
step = newTotal / 50;
|
||
smoothUp(document.querySelector('.scroll-content'));
|
||
}
|
||
|
||
// 参数element为滚动区域
|
||
function smoothDown(element) {
|
||
if (distance < totalY) {
|
||
distance += step;
|
||
element.scrollTop = distance;
|
||
setTimeout(smoothDown.bind(this, element), 10);
|
||
} else {
|
||
element.scrollTop = totalY;
|
||
}
|
||
}
|
||
|
||
// 参数element为滚动区域
|
||
function smoothUp(element) {
|
||
if (distance > totalY) {
|
||
distance -= step;
|
||
element.scrollTop = distance;
|
||
setTimeout(smoothUp.bind(this, element), 10);
|
||
} else {
|
||
element.scrollTop = totalY;
|
||
}
|
||
}
|
||
},
|
||
|
||
// 滚动条滚动
|
||
onScroll(e) {
|
||
let scrollItems = document.querySelectorAll('.scroll-item');
|
||
for (let i = scrollItems.length - 1; i >= 0; i--) {
|
||
// 判断滚动条滚动距离是否大于当前滚动项可滚动距离
|
||
let judge = e.target.scrollTop >= scrollItems[i].offsetTop - scrollItems[0].offsetTop;
|
||
if (judge) {
|
||
this.tabIndex = i.toString();
|
||
// 找对应的tab-name值
|
||
this.tabName = this.tabsList[this.tabIndex].refName;
|
||
// this.tabClick = this.tabsList[this.tabIndex].refName
|
||
break;
|
||
}
|
||
}
|
||
},
|
||
|
||
getHight() {
|
||
this.contentStyleObj.height = window.innerHeight - 120 + 'px';
|
||
// this.jumpTab(0,this.tabsList[0])
|
||
}
|
||
},
|
||
components: {
|
||
quillEditor,
|
||
timetalk,
|
||
editPublicRefRdit
|
||
}
|
||
};
|
||
</script>
|
||
|
||
<style scoped>
|
||
.tab_post {
|
||
width: 260px !important;
|
||
}
|
||
.scroll-item {
|
||
margin: 10px 20px 20px 280px;
|
||
}
|
||
.payment_info_box {
|
||
margin-bottom: 10px;
|
||
}
|
||
.payment_info_box li {
|
||
list-style: none;
|
||
margin-top: 2px;
|
||
}
|
||
.payment_info {
|
||
color: #333;
|
||
font-size: 14px;
|
||
}
|
||
.payment_info .label {
|
||
color: #333;
|
||
}
|
||
.payment_info .price {
|
||
font-weight: 700;
|
||
}
|
||
.payment_info .remark {
|
||
/* color: #888; */
|
||
}
|
||
.payment_info .price {
|
||
color: #ff5000;
|
||
/* color: #888; */
|
||
}
|
||
.unpaid {
|
||
color: #f56c6c;
|
||
background: #fef0f0;
|
||
border-color: #fbc4c4;
|
||
font-size: 14px;
|
||
padding: 10px;
|
||
box-sizing: border-box;
|
||
margin: 0;
|
||
}
|
||
.paid {
|
||
color: #67c23a;
|
||
margin: 0;
|
||
background: #f0f9eb;
|
||
border-color: #c2e7b0;
|
||
color: #67c23a;
|
||
font-weight: bold;
|
||
font-size: 12px;
|
||
padding: 10px;
|
||
box-sizing: border-box;
|
||
}
|
||
::v-deep .box-card .el-table th {
|
||
background-color: #f0f0f0 !important;
|
||
/* border-top: 1px solid #b0b0b0 !important; */
|
||
|
||
color: #333 !important;
|
||
}
|
||
::v-deep .box-card .el-table td.el-table__cell,
|
||
::v-deep .box-card .el-table th.el-table__cell.is-leaf {
|
||
/* border-bottom: 1px solid #b0b0b0 !important; */
|
||
}
|
||
|
||
</style>
|
||
<style>
|
||
.talkDialog {
|
||
height: 500px;
|
||
overflow-y: scroll;
|
||
}
|
||
|
||
.contactAuthor {
|
||
margin-top: 30px;
|
||
color: #8c939d;
|
||
}
|
||
.contactAuthor > p {
|
||
font-size: 12px;
|
||
margin-left: 0 !important;
|
||
}
|
||
.contactAuthor > p > .btnCliArt {
|
||
color: #409eff;
|
||
}
|
||
.contactAuthor > h4 {
|
||
margin-bottom: 10px;
|
||
}
|
||
.handle-box {
|
||
margin-bottom: 20px;
|
||
}
|
||
|
||
.title_header {
|
||
margin-bottom: 20px;
|
||
}
|
||
|
||
.tab_post {
|
||
background-color: #fafafa;
|
||
position: absolute;
|
||
left: 15px;
|
||
top: 60px;
|
||
/* width: 220px; */
|
||
z-index: 50;
|
||
}
|
||
|
||
.tab_post > div {
|
||
margin-bottom: 30px;
|
||
cursor: pointer;
|
||
position: relative;
|
||
}
|
||
|
||
.tab_post > div h5 {
|
||
padding: 10px 10px 0 0;
|
||
margin-bottom: 5px;
|
||
border-radius: 10px;
|
||
font-size: 16px;
|
||
color: #333;
|
||
font-weight: bold;
|
||
letter-spacing: -0.6px;
|
||
}
|
||
|
||
.tab_post > div h5 span {
|
||
border: 2px solid #333;
|
||
padding: 0 7px;
|
||
margin: 0 5px 0 0;
|
||
border-radius: 15px;
|
||
font-size: 12px;
|
||
display: inline-block;
|
||
}
|
||
|
||
.tab_post > div p {
|
||
margin: 0 20px 0 33px;
|
||
color: #999;
|
||
font-size: 14px;
|
||
line-height: 18px;
|
||
}
|
||
|
||
.tab_post > div .line {
|
||
top: 50px;
|
||
left: 11px;
|
||
bottom: -25px;
|
||
position: absolute;
|
||
border: 1px dashed #999;
|
||
}
|
||
|
||
.tab_post > div:nth-child(7) .line {
|
||
border: none;
|
||
}
|
||
|
||
.tab_post > div.P_style h5 {
|
||
color: #006699;
|
||
}
|
||
|
||
.tab_post > div.P_style h5 span {
|
||
background-color: #006699;
|
||
border: 2px solid #006699;
|
||
color: #fff;
|
||
}
|
||
|
||
.tab_post > div.P_style p {
|
||
color: #333;
|
||
}
|
||
|
||
.tab_post > div.P_style .line {
|
||
/* border-color: #006699; */
|
||
}
|
||
|
||
.scroll-item {
|
||
margin: 0 30px 50px 255px;
|
||
}
|
||
|
||
.bor_style_onli {
|
||
height: 700px;
|
||
|
||
border: 2px solid #0066991a;
|
||
background-color: #fff;
|
||
border-radius: 5px;
|
||
padding: 20px;
|
||
}
|
||
.bor_style_onli_ref {
|
||
height: auto;
|
||
min-height: calc(100vh - 40px - 270px);
|
||
}
|
||
.bor_style_onli > h4 {
|
||
margin: 0 0 20px 0;
|
||
letter-spacing: -0.5px;
|
||
}
|
||
|
||
.captcha-img.el-switch.is-disabled {
|
||
opacity: 1;
|
||
}
|
||
|
||
.captcha-img.el-switch.is-disabled .el-switch__core {
|
||
cursor: pointer;
|
||
}
|
||
|
||
.message-title {
|
||
cursor: pointer;
|
||
}
|
||
|
||
.guanSty {
|
||
min-width: 1000px;
|
||
}
|
||
|
||
.guanSty .quill-editor {
|
||
margin-bottom: 20px;
|
||
/* height: 200px; */
|
||
}
|
||
|
||
.guanSty .ql-toolbar {
|
||
border: 1px solid #dcdfe6 !important;
|
||
}
|
||
|
||
.guanSty .ql-container {
|
||
min-height: 100px !important;
|
||
border: 1px solid #dcdfe6 !important;
|
||
}
|
||
|
||
.guanSty .ql-editor {
|
||
height: 100px;
|
||
}
|
||
|
||
.guanSty .upload-demo .el-upload {
|
||
width: 55px;
|
||
float: left;
|
||
margin-left: 5px;
|
||
border: none;
|
||
text-align: left;
|
||
height: 35px;
|
||
}
|
||
|
||
.guanSty .el-upload-list {
|
||
margin-top: 4px;
|
||
margin-left: 20px;
|
||
float: left;
|
||
width: 35px;
|
||
}
|
||
|
||
.guanSty .el-upload-list .el-upload-list__item {
|
||
width: 30px !important;
|
||
}
|
||
|
||
.guanSty .el-upload-list .el-upload-list__item:hover {
|
||
cursor: pointer;
|
||
}
|
||
|
||
.guanSty .el-upload-list .el-upload-list__item .el-upload-list__item-name {
|
||
width: 30px;
|
||
}
|
||
|
||
.guanSty .el-upload-list .el-upload-list__item .el-upload-list__item-status-label {
|
||
display: none;
|
||
}
|
||
|
||
.guanSty .el-upload-list__item:hover .el-icon-close {
|
||
display: none;
|
||
}
|
||
|
||
.guanSty .avatar-uploader .el-upload {
|
||
border: 1px dashed #d9d9d9;
|
||
border-radius: 6px;
|
||
cursor: pointer;
|
||
position: relative;
|
||
overflow: hidden;
|
||
width: 140px;
|
||
height: 140px;
|
||
}
|
||
|
||
.guanSty .avatar-uploader .el-upload:hover {
|
||
border-color: #409eff;
|
||
}
|
||
|
||
.guanSty .avatar-uploader-icon {
|
||
font-size: 28px;
|
||
color: #8c939d;
|
||
width: 140px;
|
||
height: 140px;
|
||
line-height: 140px;
|
||
text-align: center;
|
||
}
|
||
|
||
.guanSty .avatar {
|
||
width: 140px;
|
||
height: 140px;
|
||
display: block;
|
||
}
|
||
|
||
.guanSty .upload-demo .el-upload-list__item:first-child {
|
||
margin-top: 0;
|
||
width: 300px;
|
||
}
|
||
|
||
.suoshu_jigou .el-checkbox__label {
|
||
white-space: normal;
|
||
}
|
||
|
||
.suoshu_jigou .el-checkbox__input {
|
||
vertical-align: top;
|
||
margin-top: 8px;
|
||
}
|
||
|
||
.liter_ture {
|
||
position: relative;
|
||
margin-top: 30px;
|
||
}
|
||
|
||
.chanSelLef {
|
||
width: 100% !important;
|
||
}
|
||
|
||
.chanSelLef > p {
|
||
font-size: 14px;
|
||
color: #333;
|
||
margin: 10px 0 30px 0;
|
||
line-height: 22px;
|
||
}
|
||
|
||
.chanSelLef > div {
|
||
margin: 0 0 20px 0;
|
||
}
|
||
|
||
.chanSelLef > div > h3 {
|
||
font-size: 14px;
|
||
letter-spacing: -0.5px;
|
||
color: #999;
|
||
}
|
||
|
||
.chanSelLef > div > h3:hover {
|
||
/* text-decoration: underline; */
|
||
}
|
||
|
||
.chanSelLef > div > h3 > span {
|
||
color: #fff;
|
||
background-color: #999;
|
||
padding: 2px 6px;
|
||
margin: 0 10px 0 0;
|
||
}
|
||
|
||
.chanSelLef > div > div > p {
|
||
font-size: 14px;
|
||
color: #333;
|
||
margin: 10px 0 0 32px;
|
||
line-height: 24px;
|
||
}
|
||
|
||
.chanSelLef > div.C_style > h3 {
|
||
color: #006699;
|
||
}
|
||
|
||
.chanSelLef > div.C_style > h3 > span {
|
||
background-color: #006699;
|
||
}
|
||
|
||
.chanFerAll .chanFerBtn {
|
||
cursor: pointer;
|
||
}
|
||
|
||
.chanFerAll .ref_list:nth-child(2n) {
|
||
}
|
||
|
||
.chanFerAll .ref_list:nth-child(2n + 1) {
|
||
background-color: #ecf5ff;
|
||
}
|
||
|
||
.ref_list {
|
||
padding: 20px;
|
||
position: relative;
|
||
}
|
||
|
||
.ref_list > b {
|
||
position: absolute;
|
||
top: 5px;
|
||
left: 10px;
|
||
font-size: 12px;
|
||
}
|
||
|
||
.ref_list > i {
|
||
position: absolute;
|
||
top: 10px;
|
||
right: 10px;
|
||
font-size: 16px;
|
||
color: #006699;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.ref_list > div:nth-child(1) {
|
||
margin: 0 0 15px 0;
|
||
}
|
||
|
||
.ref_list > div:nth-child(1) input {
|
||
}
|
||
|
||
.ref_list > div:nth-child(1) button {
|
||
float: right;
|
||
}
|
||
|
||
.ref_list > div:nth-child(2) {
|
||
margin: 0 0 15px 0;
|
||
}
|
||
|
||
.ref_list > div.BG_yell {
|
||
background-color: #fdf3e3;
|
||
padding: 15px 0;
|
||
}
|
||
|
||
.RefProBar {
|
||
position: absolute;
|
||
background: rgba(0, 0, 0, 0.7);
|
||
top: 0;
|
||
bottom: 0;
|
||
left: 0;
|
||
right: 0;
|
||
}
|
||
|
||
.RefProBar > div {
|
||
width: 76%;
|
||
position: absolute;
|
||
top: 40%;
|
||
left: 12%;
|
||
}
|
||
|
||
.RefProBar > div > p {
|
||
color: #fff;
|
||
margin: 20px 0 0 0;
|
||
}
|
||
|
||
.RefProBar > div > p > img {
|
||
width: 30px;
|
||
vertical-align: middle;
|
||
margin: 0 10px 0 5px;
|
||
}
|
||
|
||
.RefProBar > div > p > span {
|
||
font-size: 18px;
|
||
}
|
||
|
||
.upload-demo_6 {
|
||
overflow: auto;
|
||
}
|
||
|
||
.upload-demo_6 .el-upload {
|
||
margin-left: 0 !important;
|
||
width: 150px !important;
|
||
height: auto !important;
|
||
text-align: center !important;
|
||
}
|
||
|
||
.upload-demo_6 .el-upload__tip {
|
||
margin-left: 15px;
|
||
float: left;
|
||
}
|
||
|
||
.typeA_MTxt > div > div {
|
||
position: relative;
|
||
border-bottom: 1px solid #d6e5ec;
|
||
padding: 10px 0 12px 0;
|
||
}
|
||
|
||
.typeA_MTxt > div > div .el-button {
|
||
position: absolute;
|
||
right: 5px;
|
||
top: -1px;
|
||
}
|
||
|
||
.typeA_MTxt > h5 {
|
||
margin: 25px 0 15px 0;
|
||
line-height: 18px;
|
||
font-size: 13px;
|
||
color: #bbb;
|
||
font-weight: 400;
|
||
}
|
||
|
||
.bor_style_onli .load_pdf {
|
||
margin-bottom: 20px;
|
||
}
|
||
|
||
.bor_style_onli .load_pdf > img {
|
||
vertical-align: sub;
|
||
margin: 0 15px 0 0;
|
||
}
|
||
|
||
.bor_style_onli .load_pdf a i:hover {
|
||
color: #006699 !important;
|
||
transform: scale(1.3);
|
||
}
|
||
|
||
.con_firm {
|
||
font-size: 14px;
|
||
line-height: 28px;
|
||
}
|
||
|
||
.con_firm b {
|
||
margin-left: 5px;
|
||
}
|
||
|
||
.con_firm i {
|
||
font-size: 18px;
|
||
margin-right: 5px;
|
||
vertical-align: text-bottom;
|
||
}
|
||
|
||
.aMesage {
|
||
font-size: 14px;
|
||
font-family: 'Helvetica Neue', Helvetica, Georgia, sans-serif;
|
||
word-break: break-all;
|
||
}
|
||
|
||
.aMes_typ {
|
||
line-height: 35px;
|
||
border-bottom: 1px solid #f1f1f1;
|
||
color: #7f0202;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.aMes_tit {
|
||
color: #222;
|
||
font-weight: bold;
|
||
margin-top: 8px;
|
||
line-height: 20px;
|
||
font-family: 'Helvetica Neue', Helvetica, Georgia, sans-serif;
|
||
}
|
||
|
||
.aMes_autor {
|
||
margin-top: 5px;
|
||
font-size: 15px;
|
||
font-family: Calibri;
|
||
}
|
||
|
||
.aMes_doi {
|
||
margin-top: 8px;
|
||
}
|
||
|
||
.aMes_doi span {
|
||
margin-left: 20px;
|
||
}
|
||
|
||
.aMes_asbimg {
|
||
margin-top: 20px;
|
||
}
|
||
|
||
.aMes_asbimg img {
|
||
float: left;
|
||
width: 290px;
|
||
}
|
||
|
||
.aMes_asbimg div {
|
||
float: left;
|
||
font-family: Calibri;
|
||
width: 430px;
|
||
padding-left: 30px;
|
||
}
|
||
|
||
.aArticle {
|
||
font-size: 14px;
|
||
font-family: 'Helvetica Neue', Helvetica, Georgia, sans-serif;
|
||
word-break: break-all;
|
||
}
|
||
|
||
.aArt_doi {
|
||
}
|
||
|
||
.aArt_tit {
|
||
font-size: 16px;
|
||
color: #333333;
|
||
font-weight: bold;
|
||
margin: 20px 0 15px 0;
|
||
line-height: 24px;
|
||
}
|
||
|
||
.aArt_autor {
|
||
margin-top: 5px;
|
||
font-size: 15px;
|
||
font-family: Calibri;
|
||
}
|
||
|
||
.aArt_autor img {
|
||
width: 13px;
|
||
margin-left: 3px;
|
||
}
|
||
|
||
.aArt_jigou {
|
||
margin-top: 10px;
|
||
line-height: 20px;
|
||
font-family: Calibri;
|
||
}
|
||
|
||
.aArt_abst {
|
||
margin-top: 30px;
|
||
}
|
||
|
||
.aArt_abst .titTop {
|
||
border-bottom: 1px solid #ddd;
|
||
margin-bottom: 20px;
|
||
}
|
||
|
||
.aArt_abst .titTop b {
|
||
font-weight: normal;
|
||
display: inline-block;
|
||
padding: 8px 10px;
|
||
border: 1px solid transparent;
|
||
margin-bottom: -1px;
|
||
border-radius: 4px 4px 0 0;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.aArt_abst .titTop b.Tab_col {
|
||
border: 1px solid #ddd;
|
||
border-bottom-color: #fff;
|
||
}
|
||
|
||
.aArt_abst .titHtml {
|
||
letter-spacing: 0.03em;
|
||
margin: 15px 10px 0 10px;
|
||
color: #444;
|
||
font-size: 15px;
|
||
line-height: 1.4;
|
||
word-break: break-word;
|
||
}
|
||
|
||
.aArt_abst > p {
|
||
margin: 25px 10px 0 10px;
|
||
text-align: justify;
|
||
color: #666;
|
||
font-size: 15px;
|
||
line-height: 1.4;
|
||
/* text-indent: 2.6rem; */
|
||
word-break: break-word;
|
||
}
|
||
|
||
.aArt_abst .titHtml .MaxPicture {
|
||
text-align: center;
|
||
}
|
||
|
||
.aArt_abst .titHtml .MaxPicture > img {
|
||
margin-bottom: 10px;
|
||
}
|
||
|
||
.aArt_abst .titHtml .MaxPicture > font {
|
||
display: block;
|
||
margin: 0 auto;
|
||
font-size: 13px;
|
||
}
|
||
</style>
|