This commit is contained in:
2025-01-08 14:58:51 +08:00
parent f299239ae6
commit 12e3938e23
7 changed files with 1364 additions and 940 deletions

View File

@@ -393,7 +393,17 @@ const en = {
Disbursements:'Disbursements', Disbursements:'Disbursements',
Confirmorderinformation:'Confirm order information', Confirmorderinformation:'Confirm order information',
orderDetail:'Order information', orderDetail:'Order information',
} },
PreAccept:{
successInfo:'Congratulations! Your manuscript has entered into <b>Pre-accept</b> status. Now please check and complete the necessary information of your manuscript for final publication.',
step1:'Manuscript Payment',
step2:'Article Proofreading',
step3:'References',
step:'step',
Information:'Fill in information',
},
} }

View File

@@ -363,30 +363,40 @@ const zh = {
exportWord: '导出 Word', exportWord: '导出 Word',
exportImg: '导出 图片', exportImg: '导出 图片',
PaperRotation: '纸张方向', PaperRotation: '纸张方向',
removeAnnotations:'确定要删除这条批注吗?', removeAnnotations: '确定要删除这条批注吗?',
removeContent:'确定要删除这条内容吗?', removeContent: '确定要删除这条内容吗?',
reContent:'确定要恢复这条内容吗?', reContent: '确定要恢复这条内容吗?',
uploadImageInfo:'Figures 只能上传 JPG、JPEG 和 PNG 格式的文件' uploadImageInfo: 'Figures 只能上传 JPG、JPEG 和 PNG 格式的文件'
},
pendingPayment: {
title: 'Title',
journal: '期刊',
Paymentamount: '缴费金额',
Paymentstatus: '缴费状态',
subtotal: '小计',
payment: '在线缴费',
payDetail: '付款详情',
total: '总价',
youhui: '优惠',
submitOrder: '提交订单',
state0: '待付款',
state1: '已缴费',
state2: '已取消',
paymentmethod: '付款方式',
Disbursements: '已付款',
Confirmorderinformation: '确认订单信息',
orderDetail: '订单信息',
},
PreAccept: {
successInfo: 'Congratulations! Your manuscript has entered into <b>Pre-accept</b> status. Now please check and complete the necessary information of your manuscript for final publication.',
step1: 'Manuscript Payment',
step2: 'Article Proofreading',
step3: 'References',
step: 'step',
Information: 'Fill in information',
}, },
pendingPayment:{
title:'Title',
journal:'期刊',
Paymentamount:'缴费金额',
Paymentstatus:'缴费状态',
subtotal:'小计',
payment:'在线缴费',
payDetail:'付款详情',
total:'总价',
youhui:'优惠',
submitOrder:'提交订单',
state0:'待付款',
state1:'已缴费',
state2:'已取消',
paymentmethod:'付款方式',
Disbursements:'已付款',
Confirmorderinformation:'确认订单信息',
orderDetail:'订单信息',
}
} }

View File

@@ -1,56 +1,137 @@
<template> <template>
<div class="container" > <div class="container" style="padding-top: 0px">
<el-row :gutter="20">
<el-row :gutter="20" > <el-alert
<el-alert v-if="alertShow" v-if="alertShow"
:title="'Dear '+ user_name + ' Congratulations! , The information will be hidden after ' + hideSec + ' seconds'" :title="'Dear ' + user_name + ' Congratulations! , The information will be hidden after ' + hideSec + ' seconds'"
type="success" type="success"
show-icon> show-icon
>
</el-alert> </el-alert>
<el-col class="mt20"> <el-col class="mt20">
<p>Congratulations! Your manuscript has entered into <b>Pre-accept</b> status. Now please check and complete the necessary information of your manuscript for final publication.</p> <p v-html="$t('PreAccept.successInfo')"></p>
</el-col> </el-col>
</el-row> </el-row>
<div style="" v-if="journalInfo.fee != '0.00'">
<p
v-if="articleInfo.is_buy == 0"
style="
color: #409eff;
margin-top: 10px;
background: #ecf5ff;
border-color: #b3d8ff;
color: #505050;
font-size: 14px;
padding: 10px;
box-sizing: border-box;
position: relative;
overflow: hidden;
"
>
<i class="el-icon-warning" style="color: #517fd5; margin-right: 10px"></i>The article processing fee is
<span style="color: #ff5000;font-weight: bold;">{{ journalInfo.fee }}</span> United States Dollars (USD), applicable to papers submitted after January 1, 2025, and ultimately
accepted for publication. For authors seeking to apply for a fee discount, please
<a
style="color: rgb(81, 127, 213); cursor: pointer; text-decoration: underline"
href="https://www.tmrjournals.com/apc/"
target="_blank"
>click here</a
>
to view the detailed policy.
<el-button
size="mini"
type="primary"
style="padding: 4px 6px; float: right; background: #ff5000 !important; border-color: #ff5000 !important"
@click="goOrderConfirmation(articleInfo)"
>Payment</el-button
>
</p>
<p
v-if="articleInfo.is_buy == 1"
style="
color: #409eff;
margin-top: 10px;
background: #ecf5ff;
border-color: #b3d8ff;
color: #505050;
font-size: 14px;
padding: 10px;
box-sizing: border-box;
position: relative;
overflow: hidden;
"
>
<i class="el-icon-warning" style="color: #517fd5; margin-right: 10px"></i>
Dear {{ user_name }}, congratulations! Your manuscript has been successfully paid. Total amount: <span style="color: #ff5000;font-weight: bold;">{{ journalInfo.fee }}</span> USD
</p>
</div>
<p
style="
margin-top: 10px;
color: #409eff;
background: #ecf5ff;
border-color: #b3d8ff;
color: #505050;
font-size: 14px;
padding: 10px;
box-sizing: border-box;
"
v-else
>
<i class="el-icon-warning" style="color: #517fd5; margin-right: 10px"></i>
This manuscript does not require payment
</p>
<!-- <el-steps :active="active" finish-status="success" simple style="margin-top: 10px">
<el-step :title="`${$t('PreAccept.step')} ${i + 1} ${v.title} `" v-for="(v, i) in stepList"> </el-step>
</el-steps> -->
<!-- 内容 --> <!-- 内容 -->
<el-row :gutter="20" class="content_box mt20"> <!-- <div class="content_box mt20 stepbox" v-if="active == 0">
<div class="con">
<h4 class="con-title">{{ this.$t('PreAccept.step1') }}</h4>
<template v-if="articleInfo && articleInfo.is_buy == 0">
<OrderConfirmation
type="component"
@paySuccess="paySuccess"
ref="OrderConfirmation"
style="padding: 0 20px; box-sizing: border-box"
></OrderConfirmation>
</template>
</div>
</div> -->
<div class="content_box mt20 stepbox">
<!-- 文章引用 --> <!-- 文章引用 -->
<el-col :class="['item', 'borderBottom', Ainfo.refer_state.state? 'passborder' : 'notPassborder']">
<h5 :class="['statusTop', Ainfo.refer_state.state? 'passStatus' : 'notPassStatus']">
<span v-if="Ainfo.refer_state.state" class="el-icon-check pass status"> Complete</span>
<span v-else class="el-icon-pie-chart notPass status"> Pending</span>
</h5>
<div class="con"> <div class="con">
<h4>Manuscript payment </h4> <h4 class="con-title">{{ this.$t('PreAccept.step2') }}</h4>
<p style="color: #505050; font-size: 14px; padding: 20px; box-sizing: border-box">
<el-button @click="goGenerateCharts(thisArtcleId)" icon="el-icon-edit" type="text">Edit</el-button>
</p>
<p class="mt10"><common-paypal-button style="width: 150px;" <!-- <div v-else style="padding: 20px; box-sizing: border-box"></div> -->
:amount="40.00"
:orderId="4477"
@payment-success="handlePaymentSuccess"
@payment-error="handlePaymentError"
/></p>
</div> </div>
</div>
<div class="content_box mt20 stepbox">
<!-- 文章引用 -->
<div class="con"> <div class="con">
<h4>HTML Proofread </h4> <h4 class="con-title" style="overflow: hidden">
{{ this.$t('PreAccept.step3') }}
<span v-if="Ainfo.refer_state.state" style="float: right" class="el-icon-check pass status"> Complete</span>
<span v-else class="el-icon-pie-chart notPass status" style="float: right"> Pending</span>
<p class="mt10"><el-button @click="goGenerateCharts(thisArtcleId)" icon="el-icon-edit" type="text">Edit</el-button></p> </h4>
<p style="color: #505050; font-size: 14px; padding: 20px; box-sizing: border-box">
<i class="el-icon-warning" style="color: #517fd5; margin-right: 8px"></i> A total of
<i class="tip">{{ Ainfo.refer_state.num }}</i> references in this manuscript is identified.
</p>
<p style="color: #505050; font-size: 14px; padding: 0 20px 20px; box-sizing: border-box">
<el-button @click="goAddReferences(thisArtcleId)" icon="el-icon-edit" type="text">Edit</el-button>
</p>
<!-- <div v-else style="padding: 20px; box-sizing: border-box"></div> -->
</div>
</div> </div>
<div class="con">
<h4>References </h4>
<p class="mt20">A total of <i class="tip">{{Ainfo.refer_state.num}}</i> references in this manuscript is identified.</p>
<!-- <p class="mt10"><img src="../../assets/img/icon_9.png" alt="" class="icon_img"> <el-link @click="goAddReferences(thisArtcleId)" type="primary" >&nbsp; &nbsp;Click here to edit</el-link> </p> -->
<p class="mt10"><el-button @click="goAddReferences(thisArtcleId)" icon="el-icon-edit" type="text">Edit</el-button></p>
</div>
</el-col>
</el-row>
<!-- 答疑 --> <!-- 答疑 -->
<div class="mt20 helpcontent"> <div class="mt20 helpcontent">
<div class="flexbox"> <div class="flexbox">
@@ -62,34 +143,94 @@
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
export default { import OrderConfirmation from '../page/components/pendingPayment/OrderConfirmation.vue';
export default {
data() { data() {
return { return {
articleInfo: {},
journalInfo: {},
urlList: {
detail: 'api/Order/preOrderDetail'
},
active: 0,
stepList: [
{
title: this.$t('PreAccept.step1'),
value: 1
},
{
title: this.$t('PreAccept.Information'),
value: 2
}
// {
// title: this.$t('PreAccept.step3'),
// value: 3
// }
],
user_name: localStorage.getItem('U_relname'), user_name: localStorage.getItem('U_relname'),
thisArtcleId: this.$route.query.id, thisArtcleId: this.$route.query.id,
alertShow:true, alertShow: true,
dingshi:null, dingshi: null,
hideSec:5, hideSec: 5,
// 引用表单数据 // 引用表单数据
ReferenceList:[], ReferenceList: [],
Ainfo:{ Ainfo: {
refer_state:{ refer_state: {
state:null, state: null,
num: null num: null
} }
} }
} };
}, },
created() { created() {
this.getInfoStatu() this.getInfoStatu();
this.hideAlert() this.hideAlert();
this.getDetail();
},
components: {
OrderConfirmation
},
methods: {
paySuccess() {
this.active = 1;
},
goOrderConfirmation(data) {
this.$router.push({
path: '/OrderConfirmation',
query: {
id: this.$route.query.id,
type: 'Pre-accept'
}
});
},
getDetail() {
this.$api
.post(this.urlList.detail, {
article_id: this.$route.query.id
})
.then((res) => {
console.log('res at line 191:', res);
if (res.code == 0) {
this.articleInfo = res.data.article_detail;
this.journalInfo = res.data.journal_detail;
if (this.articleInfo.is_buy == 1 || (this.articleInfo.is_buy == 0 && this.journalInfo.fee == '0.00')) {
this.active = 1;
}
}
});
},
handleClickStep(e) {
console.log('e at line 127:', e);
this.active = e.value;
this.$forceUpdate();
}, },
methods:{
// 跳转到引用编辑页面 // 跳转到引用编辑页面
goAddReferences(id){ goAddReferences(id) {
this.$router.push({ this.$router.push({
path: 'ReferenceEditor', path: 'ReferenceEditor',
query: { query: {
@@ -98,7 +239,7 @@
}); });
}, },
// 跳转到图表编辑页面 // 跳转到图表编辑页面
goGenerateCharts(id){ goGenerateCharts(id) {
this.$router.push({ this.$router.push({
path: 'GenerateCharts', path: 'GenerateCharts',
query: { query: {
@@ -107,65 +248,124 @@
}); });
}, },
// 隐藏alert // 隐藏alert
hideAlert(){ hideAlert() {
this.dingshi = setInterval(()=>{ this.dingshi = setInterval(() => {
this.hideSec -= 1 this.hideSec -= 1;
// console.log(this.hideSec) // console.log(this.hideSec)
if(this.hideSec == 0){ if (this.hideSec == 0) {
this.alertShow = false this.alertShow = false;
clearInterval(this.dingshi) clearInterval(this.dingshi);
} }
},1000) }, 1000);
}, },
// 获取资料状态 // 获取资料状态
getInfoStatu(){ getInfoStatu() {
this.$api this.$api
.post('/api/Article/getPreacceptStatus', { .post('/api/Article/getPreacceptStatus', {
'article_id': this.$route.query.id article_id: this.$route.query.id
}) })
.then(res => { .then((res) => {
if(res.code == 0){ if (res.code == 0) {
// console.log(res, 'res') // console.log(res, 'res')
this.Ainfo = { this.Ainfo = {
refer_state:{ refer_state: {
state: res.data.refer_state.state, state: res.data.refer_state.state,
num:res.data.refer_state.num num: res.data.refer_state.num
}
} }
};
} }
}) })
.catch(err => { .catch((err) => {
console.log(err); console.log(err);
}); });
} }
} }
} };
</script> </script>
<style scoped> <style scoped>
.tip{background: #e6effb; padding: 4px; font-style: normal; border-radius:10px ;} .tip {
.passborder{border:1px solid #f0f9eb;} background: #e6effb;
.notPassborder{border:1px solid #fdf6ec;} padding: 4px;
.con{padding: 20px;} font-style: normal;
.statusTop{height:30px;} border-radius: 10px;
.borderBottom{ border-bottom:1px solid #f1f1f1; margin-bottom: 20px; } }
.help{font-size: 22px; margin-right: 10px;} .passborder {
.el-alert__title{font-size: 26px;} border: 1px solid #f0f9eb;
.mt20{margin-top: 20px;} }
/* .content_box{padding:15px 10px; border:3px dashed #eff6ff; } */ .notPassborder {
.content_box .item{padding: 0 !important; border-radius: 20px 20px 0 0; overflow: hidden;} border: 1px solid #fdf6ec;
.passStatus{ background: #f0f9eb;} }
.notPassStatus{background: #fdf6ec;} /* .con{padding: 20px;} */
.content_box .item .status{ font-size: 16px; padding:0 10px; line-height: 30px; } .statusTop {
.content_box .item .status.pass{ color: #67c23a;} height: 30px;
.content_box .item .status.notPass{ color: #e6a23c;} }
.flexbox{display: flex;} .borderBottom {
p{color: #333;} border-bottom: 1px solid #f1f1f1;
.mt10{margin-top: 10px;} margin-bottom: 20px;
.more{font-weight: bold;} }
.helpcontent{color: #888; margin-top: 150px; padding-top: 30px; border-top: 2px solid #f1f1f1;} .help {
.helpcontent p{color: inherit; font-size: 12px;} font-size: 22px;
</style> margin-right: 10px;
}
.el-alert__title {
font-size: 26px;
}
.mt20 {
margin-top: 20px;
}
/* .content_box{padding:15px 10px; border:3px dashed #eff6ff; } */
.content_box .item {
padding: 0 !important;
border-radius: 20px 20px 0 0;
overflow: hidden;
}
.passStatus {
background: #f0f9eb;
}
.notPassStatus {
background: #fdf6ec;
}
.content_box .item .status {
font-size: 16px;
padding: 0 10px;
line-height: 30px;
}
.pass {
color: #67c23a !important;
}
.notPass {
color: #e6a23c !important;
}
.flexbox {
display: flex;
}
p {
color: #333;
}
.mt10 {
margin-top: 10px;
}
.more {
font-weight: bold;
}
.helpcontent {
color: #888;
margin-top: 150px;
padding-top: 30px;
border-top: 2px solid #f1f1f1;
}
.helpcontent p {
color: inherit;
font-size: 12px;
}
.stepbox {
border: 1px solid #ebebeb;
}
.con-title {
background-color: #f8f8f8;
padding: 10px 20px;
box-sizing: border-box;
}
</style>

View File

@@ -1,8 +1,61 @@
<template> <template>
<div> <div>
<div class="tab_post"> <div class="tab_post">
<div style="margin-bottom: 10px">
<p
v-if="feeStatus == 0"
style="
color: #f56c6c;
background: #fef0f0;
border-color: #fbc4c4;
font-size: 14px;
padding: 10px;
box-sizing: border-box;
margin: 0;
"
>
<i class="el-icon-warning" style="color: #f56c6c; margin-right: 10px"></i>Manuscript unpaid
</p>
<p
v-if="feeStatus == 1"
style="
color: #67c23a;
margin: 0;
background: #f0f9eb;
border-color: #c2e7b0;
color: #67c23a;
font-weight: bold;
font-size: 12px;
padding: 10px;
box-sizing: border-box;
"
>
<i class="el-icon-warning" style="color: #67c23a; margin-right: 10px"></i>Paid already
</p>
</div>
<div style="margin-bottom: 10px">
<p
style="
margin: 0;
color: #409eff;
background: #ecf5ff;
border-color: #b3d8ff;
color: #505050;
font-size: 12px;
padding: 10px;
box-sizing: border-box;
"
v-if="feeStatus == 2"
>
<i class="el-icon-warning" style="color: #517fd5; margin-right: 10px"></i>
This manuscript does not require payment
</p>
</div>
<div v-for="(item, index) in tabsList" @click="jumpTab(index, item)" :class="tabName == item.refName ? 'P_style' : ''"> <div v-for="(item, index) in tabsList" @click="jumpTab(index, item)" :class="tabName == item.refName ? 'P_style' : ''">
<h5> <h5>
<span>{{ index + 1 }}</span> <span>{{ index + 1 }}</span>
@@ -365,6 +418,8 @@ import timetalk from './time_talk';
export default { export default {
data() { data() {
return { return {
feeStatus: null,
isShowCommit: false,
talkMsgs: [], talkMsgs: [],
communVisible: false, communVisible: false,
msgform: { msgform: {
@@ -796,6 +851,7 @@ export default {
}; };
}, },
created() { created() {
this.getDetail();
this.getHight(); this.getHight();
window.addEventListener('resize', this.getHight); window.addEventListener('resize', this.getHight);
// this.getData(); // this.getData();
@@ -805,6 +861,9 @@ export default {
// this.getCount(); // this.getCount();
// this.getWorldPdf(); // this.getWorldPdf();
}, },
activated() {
this.getDetail();
},
methods: { methods: {
talksave(val) { talksave(val) {
this.msgform.ad_content = ''; this.msgform.ad_content = '';
@@ -869,6 +928,30 @@ export default {
loading.close(); loading.close();
}); });
}, },
getDetail() {
this.isShowCommit = false;
this.$api
.post('api/Order/preOrderDetail', {
article_id: this.$route.query.id
})
.then((res) => {
console.log('res at line 191:', res);
if (res.code == 0) {
this.articleInfo = res.data.article_detail;
this.journalInfo = res.data.journal_detail;
if (this.articleInfo.is_buy == 1 && this.journalInfo.fee != '0.00') {
this.isShowCommit = true;
this.feeStatus = 1;
} else if (this.journalInfo.fee == '0.00' && this.articleInfo.is_buy == 1) {
this.isShowCommit = true;
this.feeStatus = 2;
} else {
this.feeStatus = 0;
this.isShowCommit = false;
}
}
});
},
getData() { getData() {
this.idform.p_article_id = this.p_article_id; this.idform.p_article_id = this.p_article_id;
this.detailMes.p_article_id = this.p_article_id; this.detailMes.p_article_id = this.p_article_id;
@@ -2026,6 +2109,11 @@ export default {
// 提交到 accept // 提交到 accept
pushToAccept(detailMes) { 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', { this.$confirm(`Are you sure you want to adjust this article status to 'accept'?`, 'Prompt', {
confirmButtonText: 'Yes', confirmButtonText: 'Yes',
cancelButtonText: 'Cancle', cancelButtonText: 'Cancle',

View File

@@ -5,7 +5,7 @@
<el-breadcrumb-item> <i class="el-icon-uthorVisiblelx-cascades"></i> Submit manuscript </el-breadcrumb-item> <el-breadcrumb-item> <i class="el-icon-uthorVisiblelx-cascades"></i> Submit manuscript </el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
</div> </div>
<div style="display: flex;justify-content: space-between;"> <div style="display: flex; justify-content: space-between">
<div> <div>
<div class="step_list" style="width: 960px; position: relative"> <div class="step_list" style="width: 960px; position: relative">
<div v-for="item in listStep" @click="StepCode(item.index)" :class="show_step == item.index ? 'C_style' : ''"> <div v-for="item in listStep" @click="StepCode(item.index)" :class="show_step == item.index ? 'C_style' : ''">
@@ -45,6 +45,7 @@
{{ item.title }} {{ item.title }}
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="Type :" prop="type"> <el-form-item label="Type :" prop="type">
<el-select v-model="form.type" placeholder="Please select type" style="width: 240px"> <el-select v-model="form.type" placeholder="Please select type" style="width: 240px">
<el-option <el-option
@@ -109,7 +110,12 @@
<el-radio :label="0">No</el-radio> <el-radio :label="0">No</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="Ethical approval file :" prop="approval_file" v-if="form.approval == 1" label-width="300px"> <el-form-item
label="Ethical approval file :"
prop="approval_file"
v-if="form.approval == 1"
label-width="300px"
>
<el-upload <el-upload
ref="uploadFile" ref="uploadFile"
class="upload-demo up_newstyle" class="upload-demo up_newstyle"
@@ -139,10 +145,20 @@
v-if="form.approval === 0" v-if="form.approval === 0"
label-width="300px" label-width="300px"
> >
<el-input type="textarea" rows="2" v-model="form.approval_content" placeholder="Please enter"></el-input> <el-input
type="textarea"
rows="2"
v-model="form.approval_content"
placeholder="Please enter"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="Abstract :" prop="abstrart"> <el-form-item label="Abstract :" prop="abstrart">
<el-input type="textarea" rows="5" v-model="form.abstrart" placeholder="Please enter the abstract"></el-input> <el-input
type="textarea"
rows="5"
v-model="form.abstrart"
placeholder="Please enter the abstract"
></el-input>
</el-form-item> </el-form-item>
<!-- 话题 --> <!-- 话题 -->
<!-- <el-form-item label="Topics :" prop="topics"> <!-- <el-form-item label="Topics :" prop="topics">
@@ -172,9 +188,24 @@
> >
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="Article Processing Charge :" v-if="ms_alias == null" label-width="180px">
$ {{ getFee(form.journal) }}
<div style="color: #8c8d8f"v-if=" getFee(form.journal)&&getFee(form.journal)!='0.00'">
<i class="el-icon-warning" style="color: #517fd5; margin-right: 4px"></i>The article processing fee applies to papers submitted and ultimately accepted for publication after January 1, 2025. For authors seeking to apply for fee discounts, please <a
style="color: rgb(81, 127, 213); cursor: pointer; text-decoration: underline"
href="https://www.tmrjournals.com/apc/"
target="_blank"
>click here</a
> to view detailed policies.
</div>
</el-form-item>
<div style="text-align: center; margin: 40px 0 0 0"> <div style="text-align: center; margin: 40px 0 0 0">
<el-button type="warning" @click="onStagingSave(1)" class="pro_stage">Save as draft </el-button> <el-button type="warning" @click="onStagingSave(1)" class="pro_stage">Save as draft </el-button>
<el-button type="primary" @click="onStep(1)" class="pro_ceed">Save and proceed to the next step</el-button> <el-button type="primary" @click="onStep(1)" class="pro_ceed"
>Save and proceed to the next step</el-button
>
</div> </div>
</div> </div>
</div> </div>
@@ -210,9 +241,19 @@
<div v-for="(item, index) in raltiAutList" style="position: relative"> <div v-for="(item, index) in raltiAutList" style="position: relative">
<p style="font-weight: bold; margin-bottom: 10px"> <p style="font-weight: bold; margin-bottom: 10px">
{{ item.firstname }} {{ item.lastname }} {{ item.firstname }} {{ item.lastname }}
<span v-if="!item.showHide" style="font-weight: normal; margin-left: 10px">({{ item.email }})</span> <span v-if="!item.showHide" style="font-weight: normal; margin-left: 10px"
<i v-if="item.showHide" @click="raltSHpin(index, 0)" class="el-icon-caret-top jiantouBiao"></i> >({{ item.email }})</span
<i v-if="!item.showHide" @click="raltSHpin(index, 1)" class="el-icon-caret-bottom jiantouBiao"></i> >
<i
v-if="item.showHide"
@click="raltSHpin(index, 0)"
class="el-icon-caret-top jiantouBiao"
></i>
<i
v-if="!item.showHide"
@click="raltSHpin(index, 1)"
class="el-icon-caret-bottom jiantouBiao"
></i>
</p> </p>
<p v-if="item.showHide"> <p v-if="item.showHide">
<font>E-mail :</font> <font>E-mail :</font>
@@ -279,7 +320,8 @@
</el-button> </el-button>
</p> </p>
<p style="font-weight: bold; margin-bottom: 10px"> <p style="font-weight: bold; margin-bottom: 10px">
{{ item.firstname }} {{ item.lastname }} {{ item.isSuper ? '#' : '' }}{{ item.isReport ? '*' : '' }} {{ item.firstname }} {{ item.lastname }} {{ item.isSuper ? '#' : ''
}}{{ item.isReport ? '*' : '' }}
</p> </p>
<p> <p>
<font>E-mail :</font> <font>E-mail :</font>
@@ -362,12 +404,12 @@
<el-popover placement="top-start" width="350" trigger="hover"> <el-popover placement="top-start" width="350" trigger="hover">
<p style="line-height: 24px; word-wrap: break-word; word-break: normal; text-align: left"> <p style="line-height: 24px; word-wrap: break-word; word-break: normal; text-align: left">
Dear Author Dear Author
<br />Except for the experimental graphs covered in this article; the statistical graphs of the <br />Except for the experimental graphs covered in this article; the statistical graphs of
experimental results in this article; the model graphs produced by the author of this article. the experimental results in this article; the model graphs produced by the author of this
<br />For images from any other source : <br />1. Please make sure that the author owns the article. <br />For images from any other source : <br />1. Please make sure that the author
copyright of the image. <br />2. Obtain written authorization from the original copyright owner owns the copyright of the image. <br />2. Obtain written authorization from the original
(please upload proof of copyright authorization, including a screenshot of the other party's copyright owner (please upload proof of copyright authorization, including a screenshot of
authorization email or authorization letter). the other party's authorization email or authorization letter).
</p> </p>
<i <i
class="el-icon-info" class="el-icon-info"
@@ -462,10 +504,10 @@
<div> <div>
<h3>Co-submitting</h3> <h3>Co-submitting</h3>
<p style="line-height: 25px; margin: 0 10px 0 55px; font-size: 14px"> <p style="line-height: 25px; margin: 0 10px 0 55px; font-size: 14px">
TMR Publishing Group publishes multiple journals and offers you the opportunity to co-submit your paper. If your TMR Publishing Group publishes multiple journals and offers you the opportunity to co-submit your paper.
manuscript is not deemed suitable for the first journal, it can be automatically transferred along with reviews If your manuscript is not deemed suitable for the first journal, it can be automatically transferred
and reviewers' identities (cascading peer-review) to another journal of your choice. Please note that you can along with reviews and reviewers' identities (cascading peer-review) to another journal of your choice.
choose up to two journals only. Please note that you can choose up to two journals only.
<br /><br /> <br /><br />
<el-switch <el-switch
@change="changeSwitch($event)" @change="changeSwitch($event)"
@@ -530,7 +572,12 @@
<!-- 国家 --> <!-- 国家 -->
<el-form-item prop="country" label="Country :"> <el-form-item prop="country" label="Country :">
<el-select v-model="reviewerForm.country" filterable placeholder="Please select"> <el-select v-model="reviewerForm.country" filterable placeholder="Please select">
<el-option v-for="it in countrys" :key="it.en_name" :label="it.en_name" :value="it.en_name"></el-option> <el-option
v-for="it in countrys"
:key="it.en_name"
:label="it.en_name"
:value="it.en_name"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 专业 --> <!-- 专业 -->
@@ -546,7 +593,12 @@
</el-form-item> </el-form-item>
<!-- 领域 --> <!-- 领域 -->
<el-form-item prop="field" label="Field :"> <el-form-item prop="field" label="Field :">
<el-input size="small" v-model="reviewerForm.field" auto-complete="off" placeholder="Field"></el-input> <el-input
size="small"
v-model="reviewerForm.field"
auto-complete="off"
placeholder="Field"
></el-input>
</el-form-item> </el-form-item>
<!-- 职称 --> <!-- 职称 -->
<el-form-item prop="technical" label="Technical :"> <el-form-item prop="technical" label="Technical :">
@@ -603,14 +655,15 @@
</p> </p>
<p style="margin: 5px 10px 0 55px; font-size: 14px; line-height: 22px"> <p style="margin: 5px 10px 0 55px; font-size: 14px; line-height: 22px">
(Non-essential) (Non-essential)
<br />While authors are welcome to suggest potential reviewers, the final decision on the selection of reviewers <br />While authors are welcome to suggest potential reviewers, the final decision on the selection of
is at the discretion of the editorial board. The following criteria are generally considered when selecting reviewers is at the discretion of the editorial board. The following criteria are generally considered
reviewers: <br />1. The reviewer should hold a Ph.D. degree (or equivalent) in a relevant field. <br />2. The when selecting reviewers: <br />1. The reviewer should hold a Ph.D. degree (or equivalent) in a relevant
reviewer should have published at least three articles on the subject matter of the manuscript, one of which was field. <br />2. The reviewer should have published at least three articles on the subject matter of the
published within the last five years and is indexed in the WOS database. <br />3. The reviewer should not be manuscript, one of which was published within the last five years and is indexed in the WOS database.
affiliated with the same institution as the author, and should not have a close collaborative or personal <br />3. The reviewer should not be affiliated with the same institution as the author, and should not
relationship with the author. Conflict of interest should be avoided. <br />4. The editorial board encourages have a close collaborative or personal relationship with the author. Conflict of interest should be
diversity in reviewer selection, with respect to gender and geographic location. avoided. <br />4. The editorial board encourages diversity in reviewer selection, with respect to gender
and geographic location.
</p> </p>
<el-form <el-form
ref="tuiJianForm" ref="tuiJianForm"
@@ -631,8 +684,19 @@
<el-input v-model="item.email" style="width: 160px" :validate-event="false"></el-input> <el-input v-model="item.email" style="width: 160px" :validate-event="false"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="Country :" prop="country"> <el-form-item label="Country :" prop="country">
<el-select v-model="item.country" filterable placeholder="Please select" clearable style="width: 180px"> <el-select
<el-option v-for="it in countrys" :key="it.en_name" :label="it.en_name" :value="it.en_name"></el-option> v-model="item.country"
filterable
placeholder="Please select"
clearable
style="width: 180px"
>
<el-option
v-for="it in countrys"
:key="it.en_name"
:label="it.en_name"
:value="it.en_name"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="Major :" prop="major_all"> <el-form-item label="Major :" prop="major_all">
@@ -656,15 +720,16 @@
<p style="font-size: 12px; color: #888; margin: 15px 10px 0 55px; line-height: 18px"> <p style="font-size: 12px; color: #888; margin: 15px 10px 0 55px; line-height: 18px">
You can suggest 3 potential reviewers, which can help speed up the review process. You can suggest 3 potential reviewers, which can help speed up the review process.
<br /><b style="letter-spacing: -0.5px">Please pay attention:</b> <br />Authors may suggest potential reviewers <br /><b style="letter-spacing: -0.5px">Please pay attention:</b> <br />Authors may suggest potential
if they wish. However, whether or not to consider these reviewers is at the editor's discretion. Authors should reviewers if they wish. However, whether or not to consider these reviewers is at the editor's
not suggest recent collaborators or colleagues who work in the same institution as themselves. Authors who wish discretion. Authors should not suggest recent collaborators or colleagues who work in the same
to suggest peer reviewers should provide institutional email addresses where possible or information that will institution as themselves. Authors who wish to suggest peer reviewers should provide institutional email
help the editor verify the identity of the reviewer. <br />Authors may request the exclusion of individuals as addresses where possible or information that will help the editor verify the identity of the reviewer.
peer reviewers, but they should explain the reasons in their cover letter on submission. Authors should not <br />Authors may request the exclusion of individuals as peer reviewers, but they should explain the
exclude too many individuals as this may hinder the peer review process. Intentionally falsifying information, reasons in their cover letter on submission. Authors should not exclude too many individuals as this may
for example, suggesting reviewers with a false name or email address, will result in rejection of the manuscript hinder the peer review process. Intentionally falsifying information, for example, suggesting reviewers
and may lead to further investigation in line with our misconduct policy. with a false name or email address, will result in rejection of the manuscript and may lead to further
investigation in line with our misconduct policy.
</p> </p>
<div style="margin: 50px 0 0 30px"> <div style="margin: 50px 0 0 30px">
@@ -674,9 +739,9 @@
<el-popover placement="top-start" width="320" trigger="hover"> <el-popover placement="top-start" width="320" trigger="hover">
<p style="line-height: 24px; word-wrap: break-word; word-break: normal; text-align: left"> <p style="line-height: 24px; word-wrap: break-word; word-break: normal; text-align: left">
The journal encourages scientists to invite their colleagues or collaborators to submit The journal encourages scientists to invite their colleagues or collaborators to submit
manuscripts in order to promote collaboration and expand the journal's author network. You will manuscripts in order to promote collaboration and expand the journal's author network.
be rewarded with credits that can be used to offset APC (specific details subject to journal You will be rewarded with credits that can be used to offset APC (specific details
policies) and gain priority in editorial board selection. subject to journal policies) and gain priority in editorial board selection.
</p> </p>
<i <i
class="el-icon-info" class="el-icon-info"
@@ -686,7 +751,11 @@
</el-popover> </el-popover>
: :
</span> </span>
<el-input v-model="form.code" placeholder="Please enter invitation code" style="width: 200px"></el-input> <el-input
v-model="form.code"
placeholder="Please enter invitation code"
style="width: 200px"
></el-input>
</el-form-item> </el-form-item>
</div> </div>
@@ -698,7 +767,9 @@
</div> </div>
<div style="text-align: center; margin: 40px 0 0 0"> <div style="text-align: center; margin: 40px 0 0 0">
<el-button type="primary" @click="onSubmit" style="width: 160px; margin-bottom: 30px">Submit </el-button> <el-button type="primary" @click="onSubmit" style="width: 160px; margin-bottom: 30px"
>Submit
</el-button>
</div> </div>
</div> </div>
</div> </div>
@@ -731,8 +802,8 @@
box-sizing: border-box; box-sizing: border-box;
" "
> >
We encourage authors to upload a Cover Letter file and Highlights is also be encouraged. That will help authors let editors We encourage authors to upload a Cover Letter file and Highlights is also be encouraged. That will help authors let
quickly obtain information and evaluate the scientific value of their research correctly. editors quickly obtain information and evaluate the scientific value of their research correctly.
<br />Please remind our editor in the cover letter if you want your manuscript processed quickly. <br />Please note that <br />Please remind our editor in the cover letter if you want your manuscript processed quickly. <br />Please note that
manuscripts with at least one of the following characteristics will be included in the journal's manuscript fast track: manuscripts with at least one of the following characteristics will be included in the journal's manuscript fast track:
<br /> <br />
@@ -740,19 +811,19 @@
<br /> <br />
<font style="color: #006699">2.Importance:</font> This manuscript belongs to the focus area. <font style="color: #006699">2.Importance:</font> This manuscript belongs to the focus area.
<br /> <br />
<font style="color: #006699">3.Value:</font> This manuscript belongs to the advanced topic and can attract wide attention. <font style="color: #006699">3.Value:</font> This manuscript belongs to the advanced topic and can attract wide
attention.
</p> </p>
<common-word-html <common-word-html
v-show="show_step == 3" v-show="show_step == 3"
:articleId="stagingID" :articleId="stagingID"
imgHeight="120px" imgHeight="120px"
v-if="isShowCommonWord&&stagingID" v-if="isShowCommonWord && stagingID"
style="margin-top: 10px; box-sizing: border-box; background-color: #fff" style="margin-top: 10px; box-sizing: border-box; background-color: #fff"
></common-word-html> ></common-word-html>
</div> </div>
</div> </div>
<el-dialog title="" :visible.sync="licensebox" width="500px"> <el-dialog title="" :visible.sync="licensebox" width="500px">
<span style="word-wrap: break-word; word-break: normal; line-height: 22px"> <span style="word-wrap: break-word; word-break: normal; line-height: 22px">
Creative Commons Licensing<br /><br /> Creative Commons Licensing<br /><br />
@@ -2185,22 +2256,20 @@ export default {
}, },
addWordTablesList(tables) { addWordTablesList(tables) {
console.log('tables at line 2187:', tables) console.log('tables at line 2187:', tables);
console.log('this.fileMesForm at line 2189:', this.stagingID) console.log('this.fileMesForm at line 2189:', this.stagingID);
var data = { var data = {
article_id: this.stagingID, article_id: this.stagingID,
list: tables.map(e=>( { list: tables.map((e) => ({
table: JSON.stringify([...e]), table: JSON.stringify([...e]),
type: 0, type: 0,
html_data: '' html_data: ''
})), }))
}; };
this.$api.post('api/Article/addArticleTable', data).then((res) => { this.$api.post('api/Article/addArticleTable', data).then((res) => {
this.isShowCommonWord=true this.isShowCommonWord = true;
}); });
}, },
upLoadWordTables() {}, upLoadWordTables() {},
@@ -2221,7 +2290,7 @@ export default {
if (res.code == 0) { if (res.code == 0) {
this.form.manuscirpt = 'manuscirpt/' + res.upurl; this.form.manuscirpt = 'manuscirpt/' + res.upurl;
this.fileL_manuscirpt = [{}]; this.fileL_manuscirpt = [{}];
this.isShowCommonWord=false this.isShowCommonWord = false;
this.fileL_manuscirpt[0].name = 'Manuscirpt File'; this.fileL_manuscirpt[0].name = 'Manuscirpt File';
this.fileL_manuscirpt[0].url = 'manuscirpt/' + res.upurl; this.fileL_manuscirpt[0].url = 'manuscirpt/' + res.upurl;
@@ -2295,7 +2364,7 @@ export default {
this.imagesHtml = ''; this.imagesHtml = '';
this.tables = []; this.tables = [];
this.tablesHtmlHtml = ''; this.tablesHtmlHtml = '';
this.isShowCommonWord=false; this.isShowCommonWord = false;
this.$api this.$api
.post('api/Article/reloadArticleImages', { .post('api/Article/reloadArticleImages', {
article_id: this.stagingID article_id: this.stagingID
@@ -2316,7 +2385,7 @@ export default {
this.fileL_manuscirpt = []; this.fileL_manuscirpt = [];
this.$refs['uploadFileManuscirpt'].clearFiles(); this.$refs['uploadFileManuscirpt'].clearFiles();
this.clearFileManuscript(); this.clearFileManuscript();
if(this.form.manuscirptId){ if (this.form.manuscirptId) {
this.$api this.$api
.post('api/Article/delArticleFile', { .post('api/Article/delArticleFile', {
file_id: this.form.manuscirptId file_id: this.form.manuscirptId
@@ -2329,7 +2398,6 @@ export default {
} }
}); });
} }
}, },
removefilesupplementary() { removefilesupplementary() {
this.form.supplementary = ''; this.form.supplementary = '';
@@ -2404,7 +2472,15 @@ export default {
this.changeVisible = false; this.changeVisible = false;
this.initMajor(); this.initMajor();
}, },
getFee(id) {
if (this.items.find((e) => e.journal_id == id)) {
return this.items.find((e) => e.journal_id == id).fee;
} else {
return null;
}
// console.log('this.journals at line 2409:', this.journals)
},
// 点击期刊-更换-所有 // 点击期刊-更换-所有
ch_Jour_all(e) { ch_Jour_all(e) {
this.Reviewerof.journal = e; this.Reviewerof.journal = e;
@@ -2639,9 +2715,9 @@ export default {
} }
}); });
} else if (e == 2) { } else if (e == 2) {
this.isShowCommonWord=false; this.isShowCommonWord = false;
setTimeout(() => { setTimeout(() => {
this.isShowCommonWord=true; this.isShowCommonWord = true;
// that.getWordTablesList(); // that.getWordTablesList();
// that.getWordimgList(); // that.getWordimgList();
}, 200); }, 200);

View File

@@ -1,19 +1,18 @@
<template> <template>
<div class="order-confirmation-box"> <div class="order-confirmation-box">
<div id="paypal-container" style="display: none"> <div id="paypal-container" style="display: none">
<div id="paypal-payment-button" style="width: 100%; height: 50px"></div> <div id="paypal-payment-button" style="width: 100%; height: 50px"></div>
</div> </div>
<div class="order-confirmation"> <div class="order-confirmation">
<el-descriptions :title="$t('pendingPayment.Confirmorderinformation')" column="2"> <el-descriptions :title="$t('pendingPayment.Confirmorderinformation')" column="2">
<el-descriptions-item label="ID">{{ articleInfo.accept_sn }}</el-descriptions-item> <el-descriptions-item label="ID">{{ articleInfo.accept_sn }}</el-descriptions-item>
<el-descriptions-item :label=" $t('pendingPayment.journal')">{{ journalInfo.title }} </el-descriptions-item> <el-descriptions-item :label="$t('pendingPayment.journal')">{{ journalInfo.title }} </el-descriptions-item>
<el-descriptions-item :span="2" style="width: 100%;" :label="$t('pendingPayment.title')"><p>{{ articleInfo.title }}</p></el-descriptions-item> <el-descriptions-item :span="2" style="width: 100%" :label="$t('pendingPayment.title')"
><p>{{ articleInfo.title }}</p></el-descriptions-item
>
</el-descriptions> </el-descriptions>
</div> </div>
<div <div
id="settlementContainer" id="settlementContainer"
@@ -148,9 +147,9 @@
<script> <script>
export default { export default {
props: ['type'],
data() { data() {
return { return {
orderInfo: {}, orderInfo: {},
articleInfo: {}, articleInfo: {},
journalInfo: {}, journalInfo: {},
@@ -160,7 +159,7 @@ export default {
urlList: { urlList: {
detail: 'api/Order/preOrderDetail', detail: 'api/Order/preOrderDetail',
createdOrder: 'api/Order/creatArticleOrder', createdOrder: 'api/Order/creatArticleOrder',
completeOrder: 'api/Order/completeOrder', completeOrder: 'api/Order/completeOrder'
}, },
orderId: '1234567890', // 订单号 orderId: '1234567890', // 订单号
orderItems: [], // 订单明细 orderItems: [], // 订单明细
@@ -224,15 +223,14 @@ export default {
}) })
.then((res) => { .then((res) => {
console.log('res at line 222:', res); console.log('res at line 222:', res);
that.orderInfo=res.data.detail that.orderInfo = res.data.detail;
document.querySelector('#paypal-container').style.display = 'none'; document.querySelector('#paypal-container').style.display = 'none';
return res.data.paypal.jsonResponse.id; return res.data.paypal.jsonResponse.id;
}); });
}, },
onApprove(data, actions) { onApprove(data, actions) {
return actions.order.capture().then((details) => { return actions.order.capture().then((details) => {
console.log('details at line 232:', details.id) console.log('details at line 232:', details.id);
const loading = that.$loading({ const loading = that.$loading({
lock: true, lock: true,
@@ -242,21 +240,29 @@ that.orderInfo=res.data.detail
}); });
setTimeout(() => { setTimeout(() => {
loading.close(); loading.close();
var info={id: that.articleId}
var type=''
type=that.$route.query.type?that.$route.query.type:'';
if(type == 'Pre-accept'){
info={...info,type:type}
}
that.$router.replace({ name: 'OrderConfirmation' }); that.$router.replace({ name: 'OrderConfirmation' });
// 跳转到新的路由 // 跳转到新的路由
that.$api that.$api
.post(that.urlList.completeOrder, { .post(that.urlList.completeOrder, {
order_id: that.orderInfo.order_id order_id: that.orderInfo.order_id
})
.then((res) => {
}); })
.then((res) => {});
that.$router.push({ that.$router.push({
path: '/success', path: '/success',
query: { query: {
id: that.articleId ...info
} }
}); });
}, 500); }, 500);
}); });
}, },
@@ -794,7 +800,7 @@ h3 {
.isSelect { .isSelect {
border: 0.5px solid #ff5000; border: 0.5px solid #ff5000;
} }
.tableInfo{ .tableInfo {
font-size: 14px; font-size: 14px;
} }
</style> </style>

View File

@@ -1,8 +1,8 @@
<template> <template>
<div class="success-box" v-if="articleInfo.accept_sn"> <div class="success-box" v-if="articleInfo.accept_sn">
<div class="payment-success"> <div class="payment-success">
<div style="display: flex; align-items: center;margin-bottom: 10px;"> <div style="display: flex; align-items: center; margin-bottom: 10px">
<h2 style="margin: 0 auto;display: flex; align-items: center"> <h2 style="margin: 0 auto; display: flex; align-items: center">
<img src="@/assets/img/success.png" alt="" style="margin-right: 20px; width: 128px; height: 128px" />Payment Successful <img src="@/assets/img/success.png" alt="" style="margin-right: 20px; width: 128px; height: 128px" />Payment Successful
</h2> </h2>
</div> </div>
@@ -18,7 +18,10 @@
</p> </p>
<!-- <p>Payment Method: {{ paymentMethod }}</p> --> <!-- <p>Payment Method: {{ paymentMethod }}</p> -->
<p>You will receive an email confirmation shortly.</p> <p>You will receive an email confirmation shortly.</p>
<button @click="goBack">Back to Order List</button> <button @click="goBack">
{{ $route.query.type && $route.query.type == 'Pre-accept' ? 'Continue Operation' : 'Back to Order List' }}
</button>
<p style="color: #67c23a; font-size: 13px; line-height: 40px">Automatically jump after {{ hideSec }} seconds</p>
</div> </div>
</div> </div>
</template> </template>
@@ -27,6 +30,7 @@
export default { export default {
data() { data() {
return { return {
alertShow: true,
urlList: { urlList: {
detail: 'api/Order/preOrderDetail', detail: 'api/Order/preOrderDetail',
createdOrder: 'api/Order/creatArticleOrder' createdOrder: 'api/Order/creatArticleOrder'
@@ -34,13 +38,27 @@ export default {
articleInfo: {}, articleInfo: {},
journalInfo: {}, journalInfo: {},
total: '', total: '',
articleId: this.$route.query.id articleId: this.$route.query.id,
dingshi: null,
hideSec: 5
}; };
}, },
created() { created() {
this.getDetail(); this.getDetail();
}, },
mounted() {
this.hideAlert();
},
methods: { methods: {
hideAlert() {
this.dingshi = setInterval(() => {
this.hideSec -= 1;
// console.log(this.hideSec)
if (this.hideSec == 0) {
this.goBack();
}
}, 1000);
},
formatAmount(amount) { formatAmount(amount) {
return amount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); return amount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
}, },
@@ -60,13 +78,29 @@ export default {
}); });
}, },
goBack() { goBack() {
this.$router.replace({ name: 'success' }); var type=''
type=this.$route.query.type?this.$route.query.type:'';
var id=this.$route.query.id
console.log('id at line 83:', id)
// 跳转到新的路由 // 跳转到新的路由
if (type == 'Pre-accept') {
this.$router.replace({ name: 'success' });
this.$router.push({
path: '/PreIngested',
query:{
id: id
}
});
} else {
this.$router.replace({ name: 'success' });
this.$router.push({ this.$router.push({
path: '/orderListAuthor' path: '/orderListAuthor'
}); });
} }
//
}
} }
}; };
</script> </script>