Compare commits

3 Commits

Author SHA1 Message Date
92350a387f Merge branch 'master' of https://git.nuttyreading.com/wangjinlei/tougao_web into Editorial-Board 2025-11-24 09:18:20 +08:00
b0d3e9aa33 提交 2025-11-24 09:18:02 +08:00
0e20c3344b tijiao 2025-11-21 11:08:01 +08:00
6 changed files with 482 additions and 337 deletions

View File

@@ -403,21 +403,27 @@ const en = {
pendingPayment: {
title: 'Title',
journal: 'Journal',
Paymentamount: 'Payment Amount',
Paymentstatus: 'Payment Status',
Paymentamount: 'Payment amount',
subtotal: 'Subtotal',
payment: 'Online Payment',
payDetail: 'Payment Details',
total: 'Total price',
youhui: 'Discount',
submitOrder: 'Submit Order',
state0: 'Obligation',
state1: 'Payment successful',
total: 'Original price',
youhui: 'Final price',
discountprice: 'Final price after discount',
youhuiremark: 'Discount description',
submitOrder: 'Make a payment',
state0: 'Pending payment',
state1: 'Payment successfully',
state2: 'Cancelled',
paymentmethod: 'Payment Method',
Disbursements: 'Disbursements',
paymentmethod: 'Payment method',
Disbursements: 'Payment amount',
Confirmorderinformation: 'Confirm order information',
orderDetail: 'Order information',
pendingpayment: 'Pending payment',
Paymentsuccessfully: 'Payment successfully',
Paymentstatus: 'Payment status',
time: 'Payment time',
},
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.',

View File

@@ -399,16 +399,22 @@ const zh = {
subtotal: '小计',
payment: '在线缴费',
payDetail: '付款详情',
total: '价',
youhui: '优惠',
submitOrder: '提交订单',
total: '价',
youhui: '折扣价',
discountprice: '折扣价',
youhuiremark: '折扣说明',
submitOrder: '付款',
state0: '待付款',
state1: '已缴费',
state2: '已取消',
paymentmethod: '付款方式',
Disbursements: '已付款',
Disbursements: '支付金额',
Confirmorderinformation: '确认订单信息',
orderDetail: '订单信息',
pendingpayment: '待付款',
Paymentsuccessfully: '已付款',
Paymentstatus: '缴费状态',
time: '缴费时间',
},
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.',

View File

@@ -8,15 +8,15 @@
color: #67c23a;
display: flex;
align-items: center;
justify-content: space-between;
/* justify-content: space-between; */
"
>
<i class="el-icon-success" style="margin-right: 10px"></i>
<span
>Dear {{ user_name }} , Congratulations! You manuscript has been pre-accepted for publication in
<b>{{ journalInfo.title }}</b
>. Please review and complete the necessary information of your manuscript. Kindly note that an article processing charge is
required for final publication.</span
>. Please review and complete the necessary information of your manuscript.
{{ isFree ? '' : 'Kindly note that an article processing charge is required for final publication.' }}</span
>
</p>
@@ -60,49 +60,74 @@
<!-- 文章引用 -->
<div class="con">
<h4 class="con-title">{{ this.$t('PreAccept.step1') }}</h4>
<div style="padding: 20px; box-sizing: border-box" v-loading="tableData.length==0">
<p style="color: #505050; font-size: 14px; box-sizing: border-box; margin-bottom: 20px" v-if="tableData.length>0&&tableData[0].state==0">
<i class="el-icon-warning" style="color: #517fd5; margin-right: 8px"></i> How to apply for a discount? Please see
our discount policy here:
<a
style="color: rgb(81, 127, 213); cursor: pointer; text-decoration: underline"
href="https://www.tmrjournals.com/apc/"
target="_blank"
>https://www.tmrjournals.com/apc/</a
>.
</p>
<el-card class="box-card" style="width: 100%"
><el-table :data="tableData" style="width: 100%" align="center">
<el-table-column prop="fee" label="Price">
<template slot-scope="scope"> {{ scope.row.fee }} USD </template>
</el-table-column>
<el-table-column prop="name" label="Discounts">
<template slot-scope="scope"> 0 USD </template>
</el-table-column>
<el-table-column prop="address" label="Tax">
<template slot-scope="scope"> 0 USD </template>
</el-table-column>
<el-table-column prop="fee" label="Total Price">
<template slot-scope="scope"> {{ scope.row.fee }} USD </template>
</el-table-column>
<el-table-column prop="" label="Current Status">
<template slot-scope="scope">
<span v-if="scope.row.state==1" style='color:#67c23a'><b>Completed</b></span>
<span v-if="scope.row.state==0" style='color:#f56c6c'><b>Incomplete</b></span>
</template>
</el-table-column>
</el-table>
<p style="text-align: right; margin: 20px 0 0" v-if="tableData.length>0&&tableData[0].state==0">
<span
@click="goOrderConfirmation(articleInfo)"
style="color: rgb(81, 127, 213); cursor: pointer; text-decoration: underline"
>Click here</span
<div style="padding: 20px; box-sizing: border-box" v-loading="tableData.length == 0">
<div v-if="tableData.length > 0">
<div v-if="isFree" style="display: flex; align-items: center">
<svg
style="margin-right: 10px"
t="1763705729388"
class="icon"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="6912"
width="20"
height="20"
>
to go to the payment page.
</p></el-card
>
<path
d="M383.2 512H320v-64h127.2l16-16-130.4-129.6 45.6-45.6 130.4 130.4 249.6-249.6C688 91.2 604 64 512.8 64c-247.2 0-448 200.8-448 448 0 90.4 27.2 174.4 73.6 245.6L383.2 512zM115.2 872l45.6 45.6 63.2-63.2C301.6 920 403.2 960 512.8 960c247.2 0 448-200.8 448-448 0-110.4-40-211.2-106.4-289.6l58.4-58.4-45.6-45.6M704 640H545.6v193.6h-64V640h-44l108-108V576H704v64z m0-128H565.6l64-64H704v64z"
p-id="6913"
fill="#67c23a"
></path>
</svg>
The article processing charges for your manuscript have been waived.
</div>
<div v-else>
<p
style="color: #505050; font-size: 14px; box-sizing: border-box; margin-bottom: 20px"
v-if="tableData.length > 0 && tableData[0].is_buy == 0"
>
<i class="el-icon-warning" style="color: #517fd5; margin-right: 8px"></i> How to apply for a discount?
Please see our discount policy here:
<a
style="color: rgb(81, 127, 213); cursor: pointer; text-decoration: underline"
href="https://www.tmrjournals.com/tmr/free-application/"
target="_blank"
>https://www.tmrjournals.com/tmr/free-application/</a
>.
</p>
<el-card class="box-card" style="width: 100%"
><el-table :data="tableData" style="width: 100%" align="center">
<el-table-column prop="fee" :label="$t('pendingPayment.total')">
<template slot-scope="scope"> {{ scope.row.original_price }} USD </template>
</el-table-column>
<el-table-column prop="name" :label="$t('pendingPayment.discountprice')">
<template slot-scope="scope"> {{ scope.row.fee }} USD </template>
</el-table-column>
<el-table-column prop="" :label="$t('pendingPayment.Paymentstatus')">
<template slot-scope="scope">
<span v-if="scope.row.is_buy == 1" style="color: #67c23a"
><b>{{ $t('pendingPayment.Paymentsuccessfully') }}</b></span
>
<span v-if="scope.row.is_buy == 0" style="color: #f56c6c"
><b>{{ $t('pendingPayment.pendingpayment') }}</b></span
>
</template>
</el-table-column>
</el-table>
<p style="text-align: right; margin: 20px 0 0" v-if="tableData.length > 0 && tableData[0].is_buy == 0">
<span
@click="goOrderConfirmation(articleInfo)"
style="color: rgb(81, 127, 213); cursor: pointer; text-decoration: underline"
>Click here</span
>
to access the payment page.
</p></el-card
>
</div>
</div>
<!-- <p style="text-align: right;">Click here to request an invoice.</p> -->
</div>
@@ -125,9 +150,10 @@
<div class="con">
<h4 class="con-title" style="overflow: hidden">
{{ this.$t('PreAccept.step3') }}
<b> <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></b>
<b>
<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></b
>
</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
@@ -147,7 +173,7 @@
<span class="el-icon-info help"></span>
<div>
<h4>Any questions/Help</h4>
<p class="mt20">If you experience any problems, please contact us by {{ journalInfo.email }}</p>
<p class="mt20">Should you encounter any issues, please feel free to contact us at {{ journalInfo.email }}</p>
</div>
</div>
</div>
@@ -159,6 +185,7 @@ import OrderConfirmation from '../page/components/pendingPayment/OrderConfirmati
export default {
data() {
return {
isFree: false,
tableData: [],
articleInfo: {},
journalInfo: {},
@@ -201,13 +228,13 @@ export default {
this.getInfoStatu();
this.hideAlert();
this.getDetail();
this.getPreacceptPayment();
// this.getPreacceptPayment();
},
activated() {
this.getInfoStatu();
this.hideAlert();
this.getDetail();
this.getPreacceptPayment();
// this.getPreacceptPayment();
},
components: {
OrderConfirmation
@@ -220,8 +247,7 @@ export default {
this.$router.push({
path: '/OrderConfirmation',
query: {
id: this.$route.query.id,
id: this.$route.query.id
}
});
},
@@ -231,27 +257,47 @@ export default {
article_id: this.$route.query.id
})
.then((res) => {
if (res.code == 0) {
this.tableData = [{ ...res.data }];
}
});
},
getDetail() {
const loading = this.$loading({
lock: true,
text: 'Loading...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
this.$api
.post(this.urlList.detail, {
article_id: this.$route.query.id
})
.then((res) => {
loading.close();
if (res.code == 0) {
this.articleInfo = res.data.article_detail;
this.journalInfo = res.data.journal_detail;
this.tableData = [
{
original_price: this.journalInfo.fee ? this.journalInfo.fee : 0,
fee: this.journalInfo.fee ? this.articleInfo.fee : 0,
is_buy: this.articleInfo.is_buy
}
];
if (this.tableData[0].is_buy == 1 && Number(this.tableData[0].fee) == 0) {
this.isFree = true;
} else {
this.isFree = false;
}
if (this.articleInfo.is_buy == 1 || (this.articleInfo.is_buy == 0 && this.journalInfo.fee == '0.00')) {
this.active = 1;
}
}
})
.catch((err) => {
loading.close();
});
},
handleClickStep(e) {
@@ -270,10 +316,15 @@ export default {
},
// 跳转到图表编辑页面
goGenerateCharts(id) {
window.open(this.$router.resolve({ path: '/GenerateCharts',
query: {
id: id
} }).href, '_blank');
window.open(
this.$router.resolve({
path: '/GenerateCharts',
query: {
id: id
}
}).href,
'_blank'
);
// this.$router.push({
// path: 'GenerateCharts',
// query: {

View File

@@ -1,48 +1,26 @@
<template>
<div>
<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"></div>
<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 != 1">{{ item.rongCont }}</p>
<p v-else>
<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
@@ -57,12 +35,12 @@
Push To Accept
</el-button>
</div>
<div style="margin: 20px 0 0 0">
<!-- <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> -->
<!-- 作者联系 -->
<div class="contactAuthor">
<h4>Contact author</h4>
@@ -96,8 +74,72 @@
<!-- 参考文献 -->
<div :ref="tabsList[0].refName" class="scroll-item">
<div class="bor_style_onli">
<div class="bor_style_onli" style="height: auto;max-height: 700px;">
<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 prop="name" :label="$t('pendingPayment.Paymentamount')">
<template slot-scope="scope">
</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">
<h4>{{ tabsList[1].name }}</h4>
<div class="liter_ture" v-if="0 == 2">
<div class="chanSelLef">
<!-- 1 -->
@@ -390,6 +432,24 @@
<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>
@@ -405,9 +465,16 @@ 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'),
@@ -444,8 +511,13 @@ export default {
// rongCont: 'Please upload the article file.'
// },
{
name: 'Reference Conversion',
name: 'Article Processing Charge',
refName: 'setOneRef',
rongCont: ''
},
{
name: 'Reference Conversion',
refName: 'setTwoRef',
rongCont: 'Revise, check and complete the references of the manuscript.'
},
// {
@@ -455,7 +527,7 @@ export default {
// },
{
name: 'Text Proofread',
refName: 'setTwoRef',
refName: 'setThreeRef',
rongCont: 'HTML layout.'
}
// {
@@ -681,166 +753,22 @@ export default {
deAuthorYul: {},
deMesYul: {},
rules: {
title: [
{
required: true,
message: 'Please enter title',
trigger: 'blur'
}
],
npp: [
{
required: true,
message: 'Please enter page',
trigger: 'blur'
}
],
journal_stage_id: [
{
required: true,
message: 'Please select stage',
trigger: 'blur'
}
],
type: [
{
required: true,
message: 'Please select type',
trigger: 'blur'
}
],
icon: [
{
required: true,
message: 'Please select picture',
trigger: 'blur'
}
],
abbr: [
{
required: true,
message: 'Please enter abbr',
trigger: 'blur'
}
],
tradition_tag: [
{
required: true,
message: 'Please enter tradition tag',
trigger: 'blur'
}
],
tradition: [
{
required: true,
message: 'Please enter tradition',
trigger: 'blur'
}
],
pubDate: [
{
required: true,
message: 'Please select pubDate',
trigger: 'blur'
}
],
doi: [
{
required: true,
message: 'Please enter doi',
trigger: 'blur'
}
],
abstract: [
{
required: true,
message: 'Please enter abstract',
trigger: 'blur'
}
],
keywords: [
{
required: true,
message: 'Please enter keywords',
trigger: 'blur'
}
],
fund: [
{
required: true,
message: 'Please enter Fund',
trigger: 'blur'
}
],
acknowledgment: [
{
required: true,
message: 'Please enter acknowledgment',
trigger: 'blur'
}
],
abbreviation: [
{
required: true,
message: 'Please enter abbreviation',
trigger: 'blur'
}
],
author_contribution: [
{
required: true,
message: 'Please enter author contribution',
trigger: 'blur'
}
],
pub_date: [
{
required: true,
message: 'Please enter date',
trigger: 'blur'
}
],
first_name: [
{
required: true,
message: 'Please enter author name',
trigger: 'blur'
}
],
last_name: [
{
required: true,
message: 'Please enter author name',
trigger: 'blur'
}
],
email: [
{
required: true,
message: 'Please enter contact author email',
trigger: 'blur'
}
],
author_country: [
{
required: true,
message: 'Please select a country',
trigger: 'blur'
}
],
organ_name: [
{
required: true,
message: 'Please enter mechanism',
trigger: 'blur'
}
]
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.getDetail();
this.getPreacceptPayment();
this.getHight();
window.addEventListener('resize', this.getHight);
// this.getData();
@@ -851,9 +779,64 @@ export default {
// this.getWorldPdf();
},
activated() {
this.getDetail();
this.getPreacceptPayment();
},
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();
@@ -917,7 +900,7 @@ export default {
loading.close();
});
},
getDetail() {
getPreacceptPayment() {
this.isShowCommit = false;
this.$api
.post('api/Preaccept/getPreacceptPayment', {
@@ -926,6 +909,28 @@ export default {
.then((res) => {
console.log('res at line 191:', res);
if (res.code == 0) {
this.article_pay_info = {
fee: res.data.article.fee,
is_buy: res.data.article.is_buy,
original_price: res.data.journal.fee,
fee_remark: 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 (this.article_pay_info.fee == 0) {
this.feeStatus = 2;
}else{
this.feeStatus = 1;
}
} else {
this.feeStatus = 0;
}
this.tableData=[{...this.article_pay_info}]
this.feeStatus = res.data.state;
this.isShowCommit = res.data.state == 1 ? true : false;
console.log(this.isShowCommit);
@@ -2126,17 +2131,17 @@ export default {
.catch(() => {});
},
pushToProduce(detailMes) {
if (!this.isShowCommit) {
this.$message.error('The manuscript has not been paid, please contact the author promptly for payment');
return false;
}
// 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(() => {
// 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...',
@@ -2150,13 +2155,13 @@ export default {
.then((res) => {
if (res.code == 0) {
load.close();
this.$message.success('successed!');
setTimeout(() => {
localStorage.setItem('U_point', 2);
this.$router.push({
path: 'articleListEditor'
});
}, 1000);
// this.$message.success('successed!');
// setTimeout(() => {
// localStorage.setItem('U_point', 2);
// this.$router.push({
// path: 'articleListEditor'
// });
// }, 1000);
} else {
load.close();
this.$message.error(res.msg);
@@ -2166,8 +2171,8 @@ export default {
load.close();
this.$message.error(err);
});
})
.catch(() => {});
// })
// .catch(() => {});
},
// 点击开始上线显示
pushOnline(detailMes) {
@@ -2348,6 +2353,60 @@ export default {
.scroll-item {
margin: 0 30px 50px 276px;
}
.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 {
@@ -2381,7 +2440,7 @@ export default {
background-color: #fafafa;
position: absolute;
left: 25px;
top: 60px;
top: 40px;
/* width: 220px; */
z-index: 50;
}

View File

@@ -1,5 +1,5 @@
<template>
<div>
<div class="" style="min-width: 1200px;">
<div class="crumbs">
<el-breadcrumb separator="/">
<el-breadcrumb-item>
@@ -20,10 +20,12 @@
<el-option :key="0" label="All status" :value="0"></el-option>
<el-option :key="1" :label="$t('artstate.state1')" :value="1"></el-option>
<el-option :key="2" :label="$t('artstate.state2')" :value="2"></el-option>
<el-option :key="3" :label="$t('artstate.state3')" :value="3"></el-option>
<el-option :key="4" :label="$t('artstate.state4')" :value="4"></el-option>
<el-option :key="4" :label="$t('artstate.state8')" :value="8"></el-option>
<el-option :key="4" :label="$t('artstate.state6')" :value="6"></el-option>
<el-option :key="5" :label="$t('artstate.state5')" :value="5"></el-option>
<el-option :key="3" :label="$t('artstate.state3')" :value="3"></el-option>
</el-select>
<el-input v-model="query.name" placeholder="Title" style="margin:0 10px;width: 190px;"></el-input>
<el-button type="primary" icon="el-icon-search" @click="handleSearch">Search</el-button>
@@ -52,10 +54,12 @@
</el-table> -->
<div shadow="never" v-for="item in tableData" class="mangu_list" :style="item.state,'1' | stateChange">
<div style="padding: 20px 20px 20px 20px;position: relative;" :style="item.state,'2' | stateChange">
<p class="man_title" @click="esy_mtps(item.article_id)">
<div style="padding: 20px 10px 10px;position: relative;" :style="item.state,'2' | stateChange">
<p class="man_title" >
<el-badge is-dot :hidden="item.editor_act==1?false:true">
{{item.title}}
<span @click="esy_mtps(item.article_id)">{{item.title}}</span> <span @click="esy_deta(item.article_id)" style="font-size: 13px;font-weight: 400;color: #006699;margin-left: 10px;">
<i class="el-icon-paperclip" style="margin-right: 5px;"></i>Manuscript Information
</span>
</el-badge>
</p>
@@ -65,19 +69,22 @@
{{item.accept_sn}}
<font style="color: #666b7a;margin-left: 50px;">Type : </font>
{{item.type | ellipsis}}
<font style="color: #666b7a;margin-left: 50px;" v-if="item.journalname">Journal : </font>
<b style="font-weight: normal;">{{item.journalname}}</b>
<font style="color: #666b7a;margin-left: 50px;">Update time : </font>
<b style="font-weight: normal;">{{item.ctime}}</b>
</p>
<p class="man_con">
<!-- <span>{{item.type | ellipsis}}</span> -->
<font style="color: #666b7a;">Journal : </font>
<b style="font-weight: normal;">{{item.journalname}}</b>
</p>
<p v-if="item.state != 6">
<!-- <p >
<font style="color: #666b7a;">
<i class="el-icon-time" style="margin: 0 5px 0 0;"></i>
Update Time :
</font>
<b style="font-weight: normal;margin: 0 0 0 5px;">{{item.ctime}}</b>
</p>
</p> -->
<div class="man_state" :style="item.state,'3' | stateChange" >
<b :style="item.state,'4' | stateChange">
@@ -85,28 +92,28 @@
</b>
</div>
<div class="man_btn">
<div class="man_btn" style="overflow: hidden;">
<div style="float: right;">
<span @click="esy_mtps(item.article_id)">
<i class="el-icon-collection"></i>Manuscript Tracking
<i class="el-icon-collection"></i>Manuscript tracking
</span>
<font> | </font>
<span @click="esy_review(item.article_id)">
<i class="el-icon-document-copy"></i>Reviewer Comments
<i class="el-icon-document-copy"></i>Reviewer comments
</span>
<font> | </font>
<span @click="esy_deta(item.article_id)">
<i class="el-icon-paperclip"></i>My Manuscript
</span>
<span v-if="item.state == 6" style="text-decoration: none;">
<font> | </font>
<span v-if="item.state == 6" style="text-decoration: none;margin-left: 20px;">
<span @click="goPre_ingested(item.article_id)" class="preButton">
<!-- <el-badge is-dot class="item" > -->
<i class="el-icon-edit"></i>Enter Pre-accept Process
<i class="el-icon-bank-card"></i>Start the pre-acceptance process and complete your payment
<!-- </el-badge> -->
</span>
</span>
</div>
</div>
<!-- <el-button v-if="item.state == 6&&item.is_buy==0" size="mini" type="primary" style="position: absolute;top: 38%;right: 10px;background: #ff5000 !important;border-color: #ff5000 !important;" @click="goOrderConfirmation(item)">Payment</el-button> -->
@@ -163,7 +170,7 @@
</div>
<!-- 文章内容 -->
<el-dialog title="Manuscript Basic Information" :visible.sync="artextVisible" width="800px" :close-on-click-modal="false">
<el-dialog title="Manuscript Information" :visible.sync="artextVisible" width="800px" :close-on-click-modal="false">
<div class="art_state_message">
<p>
<font>Title :</font><b>{{artextForm.title}}</b>
@@ -958,6 +965,12 @@ this.$router.push({
.preButton {
display: inline-block;
position: relative;
background-color: #67c23a;
color: #fff;
border-radius: 4px;
line-height: 24px;
padding: 0 10px;
cursor: pointer;
}
/* .preButton:after{content: ''; display: block; width: 6px; height: 6px; background: #ff0000; position: absolute; right: 0; top: -5px; border-radius: 6px;} */
@@ -1074,9 +1087,10 @@ this.$router.push({
.mangu_list .man_btn {
/* color: #006699; */
position: absolute;
bottom: 25px;
right: 25px;
/* position: absolute; */
width: 100%;
/* bottom: 15px;
right: 25px; */
font-size: 15px;
}

View File

@@ -18,30 +18,32 @@
id="settlementContainer"
class="trade-container type-of-affix-right-panel-to-bottom bg-white overflow-hidden flex-col rounded-t-16"
>
<div class="SettlementHeader">
<div class="title1">{{ $t('pendingPayment.payDetail') }}</div>
<div class="SettlementHeader" style="padding: 10px;">
<!-- <div class="title1">{{ $t('pendingPayment.payDetail') }}</div> -->
</div>
<div class="settlementPanelContainer">
<div class="priceWrap">
<div class="priceLine priceLine_total">
<div class="priceTotal_title">{{ $t('pendingPayment.total') }}</div>
<div class="priceTotal_title" >{{ $t('pendingPayment.total') }}</div>
<div class="priceRight">
<div class="trade-price-container price">
<span class="trade-price-symbol priceTotal_unit">$</span>
<span class="trade-price-integer priceTotal_num">{{ formatAmount(total) }}</span>
<div class="trade-price-container price" >
<span class="trade-price-symbol priceTotal_unit" >$</span>
<span class="trade-price-integer priceTotal_num" >{{ formatAmount(original_price) }}</span>
</div>
</div>
</div>
<div class="priceLine priceLine_total">
<div class="priceTotal_title" style="font-weight: 400">{{ $t('pendingPayment.youhui') }}</div>
<div class="priceLine priceLine_total" v-if="total != original_price">
<div class="priceTotal_title" style="">{{ $t('pendingPayment.discountprice') }}</div>
<div class="priceRight" style="font-weight: 400; color: #7c889c">
<div class="trade-price-container price">
<span class="trade-price-symbol priceTotal_unit" style="font-weight: 400; color: #7c889c">$</span>
<span class="trade-price-integer priceTotal_num" style="font-weight: 400; color: #7c889c">0</span>
<span class="trade-price-symbol priceTotal_unit" >$</span>
<span class="trade-price-integer priceTotal_num" >{{ formatAmount(total) }}</span>
</div>
</div>
</div>
<div id="paymentCard" class="trade-container type-of-normal rounded-8 mx-16 bg-gray mt-24 mb-24 pb-20 pt-20">
<!-- -->
<div id="paymentCard" class="trade-container type-of-normal rounded-8 mx-16 bg-gray mt-24 mb-24 pb-20 pt-20" style="margin-top: 20px;">
<div class="SettlementOption">
<div class="title">
<label class="ant-checkbox-wrapper">
@@ -184,6 +186,8 @@ export default {
articleInfo: {},
journalInfo: {},
total: '',
original_price: '',
fee_remark: '',
// selectedPaymentMethod: 'PayPal', // 默认选中 PayPal
selectedPaymentMethod: 'Paystation', // 默认选中 PayPal
articleId: this.$route.query.id,
@@ -337,25 +341,30 @@ export default {
});
},
getDetail() {
const loading = this.$loading({
lock: true,
text: 'Loading...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
this.$api
.post(this.urlList.detail, {
article_id: this.articleId
})
.then((res) => {
loading.close();
console.log('res at line 191:', res);
if (res.code == 0) {
this.articleInfo = res.data.article_detail;
this.journalInfo = res.data.journal_detail;
// this.orderItems = [
// {
// ...this.articleInfo,
// fee: this.journalInfo.fee,
// journal: this.journalInfo.title
// }
// ];
this.total = this.journalInfo.fee;
this.original_price = this.journalInfo.fee;
this.fee_remark = this.articleInfo.fee_remark;
this.total = this.articleInfo.fee;
}
});
}).catch((err) => {
loading.close();
})
},
formatAmount(amount) {
return amount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
@@ -567,7 +576,7 @@ h3 {
}
.priceWrap .priceLine_total {
margin-bottom: 16px;
margin-bottom: 10px;
}
.priceWrap .priceTotal_unit {