后台引用编辑前

This commit is contained in:
@fawn-nine
2023-07-07 10:22:27 +08:00
parent c509b53180
commit 85cc743ba0
7 changed files with 1652 additions and 206 deletions

View File

@@ -0,0 +1,876 @@
<template>
<div class="liter_ture" >
<div class="chanSelLef">
<!-- 1 -->
<div :class="showB_step ==1?'C_style':''">
<h3><span>1</span>Check References and Doi</h3>
<div v-if="showB_step ==1">
<p>
You need to click
<el-button type="warning" @click="StepBOper(1)" size="mini"
style="padding: 5px 8px;font-size: 12px;margin: 0 5px;">
<i class="el-icon-edit-outline"></i>
Crossref
</el-button>
 to open the website, then paste the references part of the
<a :href='mediaUrl+this.gridData' target="_blank">
<el-button type="text" size="mini"
style="font-size: 12px;margin: 0 5px;font-weight: bold;">
<i class="el-icon-download" style="font-weight: bold;"></i>
manuscript
</el-button>
</a>
to get the new references part, please paste the new one into the input box.
</p>
<el-button @click="StepBNext(2)" plain type="primary"
style="width: 85%;margin: 15px 0px 0px 30px;position: relative;">
<i class="el-icon-right"
style="font-size: 18px;position: absolute;right: 8px;top: 5px;"></i>
Next Step
</el-button>
</div>
</div>
<!-- 2 -->
<div :class="showB_step ==2?'C_style':''">
<h3><span>2</span>Check Standard</h3>
<div v-if="showB_step ==2">
<p>Convert to standard format.</p>
<p style="background-color: #fdf3e3;padding: 10px;margin: 10px 0 0 30px;">The
references
with yellow background
are problematic, so you can check and correct them yourself.</p>
<el-button @click="StepBNext(1)" type="primary" plain
style="width: 85%;margin: 15px 0px 0px 30px;position: relative;">
<i class="el-icon-back"
style="font-size: 18px;margin:0;position:absolute;left: 8px;top: 5px;"></i>
Back Step and Reset
</el-button>
</div>
</div>
</div>
<div class="chanFerAll">
<div v-if="showB_step ==1">
<el-input v-model="refAarray" type="textarea" rows="20" style="width: 100%;"
:placeholder="placeRef"></el-input>
<el-button type="primary" @click="StepBOper(2)"
style="width: 250px;margin: 20px 0 0 0;float: right;">
<i class="el-icon-document-checked"></i>
Complete and conversion
</el-button>
<br clear="both">
</div>
<div v-for="(item,index) in this.chanFerForm" v-if="showB_step ==2" class="ref_list">
<div>
<span
style="float:left;margin: 3px 10px 0 0;width: 80px;text-align: right;font-size: 14px;">DOI
:</span>
<p style="float:left;font-size: 14px;color: #555;">{{item.refer_doi}}</p>
<br clear="both">
</div>
<div v-if="item.cs==1&&item.edit_mark!=0" style="margin-bottom: 0;">
<span
style="float:left;margin: 0 12px 0 0;width: 80px;text-align: right;font-size: 14px;">Standard
:</span>
<p v-if="item.author==''"
style="float:left;width:74.5%;font-size: 14px;color: #555;line-height: 20px;">
{{item.refer_frag}}
</p>
<p v-if="item.author!=''"
style="float:left;width:74.5%;font-size: 14px;color: #555;line-height: 20px;">
{{item.author}} {{item.title}} {{item.joura}}{{item.dateno}}. Available at:
{{item.doilink}}
</p>
<br clear="both">
</div>
<div v-if="item.cs==0||item.edit_mark==0" :class="item.cs==0?'BG_yell':''"
style="margin-bottom: 0;">
<span
style="float:left;margin: 0 12px 0 0;width: 80px;text-align: right;font-size: 14px;">Standard
:</span>
<el-input type="textarea" v-model="item.refer_frag" autosize
style="width: 60%;display: inline-block;"></el-input>
<div style="display: inline-block;width: 50px;vertical-align: top;">
<el-button @click="ChanFerEditFrag(item,index)" type="primary"
icon="el-icon-check" size="mini" style="margin: 0 5px 0 15px;">
</el-button>
<el-button @click="ChanFerMashUp(item)" type="warning" size="mini"
style="margin: 10px 5px 0 15px;" v-if="index!=0">Up</el-button>
</div>
</div>
<b>{{index+1}}</b>
<i class="el-icon-edit-outline" @click="referMark(index)"
v-if="item.edit_mark==1&&item.cs!=0&&item.author==''"></i>
<i class="el-icon-top" @click="ChanFerMashUp(item)"
v-if="index!=0&&item.edit_mark==1&&item.cs!=0"
style="right: 40px;font-size: 10px;">up</i>
</div>
</div>
<br clear="both">
<!-- <p v-if="this.chanFerForm==''" style="text-align: center;color: #999;margin-top: 50px;">No references</p> -->
<!-- 进度条 -->
<div v-if="refProcess==1" class="RefProBar">
<div>
<el-progress :text-inside="true" :stroke-width="24" :percentage="refReal"
:color="customColorMethod"></el-progress>
<p>
<img src="../../assets/img/Ip_spinner.gif">
<span>{{this.refReal}}%</span> completed, please wait...
</p>
</div>
</div>
</div>
</template>
<script>
export default {
data(){
return{
showB_step: 1,
baseUrl: this.Common.baseUrl,
mediaUrl: this.Common.mediaUrl,
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',
refAarray: '',
refProcess: 0,
}
},
props:{
p_article_id:{
type:null,
required: true
},
chanFerForm:{
type:Array,
required: true
},
gridData:{
type:String,
required: true
}
},
methods:{
init(e){
this.chanFerForm = e
this.bijiao()
//console.log('更新更新')
},
bijiao(){
if(this.chanFerForm.length > 0 ){ // 如果有值,则默认展示第二步的内容
this.showB_step = 2
}
},
StepBNext(e) {
this.showB_step = e
console.log(e)
},
StepBOper(e) {
if (e == 1) {
// 弹出新的页面粘贴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!');
}
}
},
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';
}
},
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()
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
console.log(err);
});
},
// 刷新组件
refrashComp(){
this.$emit('refrashComp',true)
},
// 重新获取参考文献
changeRefer(){
this.$emit('changeRefer',true)
},
// 向上合并某一项
ChanFerMashUp(e){
//console.log(e,'5555')
this.$emit('ChanFerMashUp',e)
},
}
}
</script>
<style scoped>
.talkDialog{height: 500px; overflow-y: scroll;}
.contactAuthor{
margin-top: 50px; 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: 25px;
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; overflow-y: scroll;
border: 2px solid #0066991a;
background-color: #fff;
border-radius: 5px;
padding: 20px;
}
.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 {
float: left;
width: 30%;
margin: 0 50px 0 0;
}
.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 {
float: left;
position: relative;
width: 61.5%;
}
.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: .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>