Merge branch 'master' of https://git.nuttyreading.com/wangjinlei/tougao_web into Editorial-Board

This commit is contained in:
2025-11-20 17:00:16 +08:00
4 changed files with 129 additions and 78 deletions

View File

@@ -19,8 +19,8 @@ const service = axios.create({
// baseURL: 'https://submission.tmrjournals.com/', //正式 记得切换 // baseURL: 'https://submission.tmrjournals.com/', //正式 记得切换
// baseURL: 'http://www.tougao.com/', //测试本地 记得切换 // baseURL: 'http://www.tougao.com/', //测试本地 记得切换
// baseURL: 'http://192.168.110.110/tougao/public/index.php/', // baseURL: 'http://192.168.110.110/tougao/public/index.php/',
baseURL: '/api', //本地 // baseURL: '/api', //本地
// baseURL: '/', //正式 baseURL: '/', //正式
}); });

View File

@@ -1,9 +1,6 @@
<template> <template>
<div> <div>
<div class="tab_post" > <div class="tab_post">
<div style="margin-bottom: 10px"> <div style="margin-bottom: 10px">
<p <p
v-if="feeStatus == 0" v-if="feeStatus == 0"
@@ -22,28 +19,23 @@
<i class="el-icon-warning" style="color: #f56c6c; margin-right: 10px"></i>Manuscript unpaid <i class="el-icon-warning" style="color: #f56c6c; margin-right: 10px"></i>Manuscript unpaid
</p> </p>
<p <p
v-if="feeStatus == 1" v-if="feeStatus == 1"
style=" style="
color: #67c23a; color: #67c23a;
margin: 0; margin: 0;
background: #f0f9eb; background: #f0f9eb;
border-color: #c2e7b0; border-color: #c2e7b0;
color: #67c23a; color: #67c23a;
font-weight: bold; font-weight: bold;
font-size: 12px; font-size: 12px;
padding: 10px; padding: 10px;
box-sizing: border-box; box-sizing: border-box;
"
>
" <i class="el-icon-warning" style="color: #67c23a; margin-right: 10px"></i>Paid already
> </p>
<i class="el-icon-warning" style="color: #67c23a; margin-right: 10px"></i>Paid already
</p>
</div>
<div style="margin-bottom: 10px">
</div> </div>
<div style="margin-bottom: 10px"></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>
@@ -65,6 +57,12 @@
Push To Accept Push To Accept
</el-button> </el-button>
</div> </div>
<div style="margin: 20px 0 0 0">
<el-button type="text" @click="pushToProduce(detailMes)" style="font-size: 13px">
<i class="el-icon-finished"></i>
Begin to Production
</el-button>
</div>
<!-- 作者联系 --> <!-- 作者联系 -->
<div class="contactAuthor"> <div class="contactAuthor">
<h4>Contact author</h4> <h4>Contact author</h4>
@@ -97,7 +95,7 @@
<!-- 文章正文 --> <!-- 文章正文 -->
<!-- 参考文献 --> <!-- 参考文献 -->
<div :ref="tabsList[0].refName" class="scroll-item" > <div :ref="tabsList[0].refName" class="scroll-item">
<div class="bor_style_onli"> <div class="bor_style_onli">
<h4>{{ tabsList[0].name }}</h4> <h4>{{ tabsList[0].name }}</h4>
<div class="liter_ture" v-if="0 == 2"> <div class="liter_ture" v-if="0 == 2">
@@ -404,8 +402,8 @@ import { quillEditor } from 'vue-quill-editor';
import { Loading } from 'element-ui'; import { Loading } from 'element-ui';
import timetalk from './time_talk'; import timetalk from './time_talk';
export default { export default {
props:['type'], props: ['type'],
data() { data() {
return { return {
feeStatus: null, feeStatus: null,
isShowCommit: false, isShowCommit: false,
@@ -623,7 +621,7 @@ export default {
// value: '书评' // value: '书评'
// } // }
// ], // ],
opMedical: [ ], opMedical: [],
editAuthor: false, editAuthor: false,
addAuthor: false, addAuthor: false,
editSchool: false, editSchool: false,
@@ -840,7 +838,8 @@ export default {
} }
}; };
}, },
created() {this.opMedical=this.$commonJS.opMedicalList() created() {
this.opMedical = this.$commonJS.opMedicalList();
this.getDetail(); this.getDetail();
this.getHight(); this.getHight();
window.addEventListener('resize', this.getHight); window.addEventListener('resize', this.getHight);
@@ -927,10 +926,9 @@ export default {
.then((res) => { .then((res) => {
console.log('res at line 191:', res); console.log('res at line 191:', res);
if (res.code == 0) { if (res.code == 0) {
this.feeStatus=res.data.state this.feeStatus = res.data.state;
this.isShowCommit=res.data.state==1?true:false this.isShowCommit = res.data.state == 1 ? true : false;
console.log(this.isShowCommit) console.log(this.isShowCommit);
} }
}); });
}, },
@@ -1673,11 +1671,15 @@ export default {
// 6----校对文章 // 6----校对文章
htmlContet() { htmlContet() {
window.open(this.$router.resolve({ path: '/GenerateCharts', window.open(
query: { this.$router.resolve({
id: this.$route.query.id path: '/GenerateCharts',
} }).href, '_blank'); query: {
id: this.$route.query.id
}
}).href,
'_blank'
);
}, },
// 6----修改时间为年月日 // 6----修改时间为年月日
@@ -2123,6 +2125,50 @@ export default {
}) })
.catch(() => {}); .catch(() => {});
}, },
pushToProduce(detailMes) {
if (!this.isShowCommit) {
this.$message.error('The manuscript has not been paid, please contact the author promptly for payment');
return false;
}
this.$confirm(`Please confirm if you would like to push this article to the production stage?`, 'Prompt', {
confirmButtonText: 'Yes',
cancelButtonText: 'Cancle',
type: 'warning'
})
.then(() => {
const load = this.$loading({
lock: true,
text: 'Loading...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
this.$api
.post('api/Preaccept/beginProduce', {
article_id: this.$route.query.id
})
.then((res) => {
if (res.code == 0) {
load.close();
this.$message.success('successed!');
setTimeout(() => {
localStorage.setItem('U_point', 2);
this.$router.push({
path: 'articleListEditor'
});
}, 1000);
} else {
load.close();
this.$message.error(res.msg);
}
})
.catch((err) => {
load.close();
this.$message.error(err);
});
})
.catch(() => {});
},
// 点击开始上线显示 // 点击开始上线显示
pushOnline(detailMes) { pushOnline(detailMes) {
if (this.authorData.length == 0) { if (this.authorData.length == 0) {
@@ -2310,7 +2356,7 @@ export default {
} }
.contactAuthor { .contactAuthor {
margin-top: 50px; margin-top: 30px;
color: #8c939d; color: #8c939d;
} }
.contactAuthor > p { .contactAuthor > p {

View File

@@ -1,5 +1,5 @@
<template> <template>
<div :style="[2,5].includes(activeIndex) ?'height:100%':''"> <div :style="[2, 5].includes(Number(activeIndex)) ? 'height:100%' : ''">
<!-- <div class="crumbs"> <!-- <div class="crumbs">
<el-breadcrumb separator="/"> <el-breadcrumb separator="/">
<el-breadcrumb-item> <el-breadcrumb-item>
@@ -8,7 +8,6 @@
</el-breadcrumb> </el-breadcrumb>
</div> --> </div> -->
<div class="tab_all"> <div class="tab_all">
<!-- 正在处理 --> <!-- 正在处理 -->
<p @click="tabIndex(1)" :class="activeIndex == 1 ? 'tab_Normal tab_Select' : 'tab_Normal'">Edit</p> <p @click="tabIndex(1)" :class="activeIndex == 1 ? 'tab_Normal tab_Select' : 'tab_Normal'">Edit</p>
@@ -27,18 +26,18 @@
<!-- <p @click="tabIndex(4)" :class="activeIndex == 4 ? 'tab_Normal tab_Select' : 'tab_Normal'">Investigte and <!-- <p @click="tabIndex(4)" :class="activeIndex == 4 ? 'tab_Normal tab_Select' : 'tab_Normal'">Investigte and
Retrace</p> --> Retrace</p> -->
<br clear="both" /> <br clear="both" />
</div> </div>
<div class="container" style="padding: 20px 15px 10px;box-sizing: border-box;" <div
:style="[2,5].includes(activeIndex) ?'height:calc(100% - 60px)':''" class="container"
style="padding: 20px 15px 10px; box-sizing: border-box"
:style="[2, 5].includes(Number(activeIndex)) ? 'height:calc(100% - 60px)' : ''"
> >
<articleListA v-if="activeIndex == '1'" :journals="journals[0]"></articleListA> <articleListA v-if="activeIndex == '1'" :journals="journals[0]"></articleListA>
<articleListB v-if="activeIndex == '2'" :journals="journals[1]" @changeEvent="changeEvent"></articleListB> <articleListB v-if="activeIndex == '2'" :journals="journals[1]" @changeEvent="changeEvent" ></articleListB>
<articleListC v-if="activeIndex == '3'" :journals="journals[0]"></articleListC> <articleListC v-if="activeIndex == '3'" :journals="journals[0]"></articleListC>
<articleListD v-if="activeIndex == '4'" ></articleListD> <articleListD v-if="activeIndex == '4'"></articleListD>
<articleListE v-if="activeIndex == '5'" :journals="journals[0]"></articleListE> <articleListE v-if="activeIndex == '5'" :journals="journals[0]"></articleListE>
<articleListF v-if="activeIndex == '6'" ></articleListF> <articleListF v-if="activeIndex == '6'"></articleListF>
</div> </div>
</div> </div>
</template> </template>
@@ -67,27 +66,36 @@ export default {
articleListE, articleListE,
articleListF articleListF
}, },
async created() { async created() { this.$nextTick(() => {
await this.initJournal(); if (localStorage.getItem('U_point') != null) {
// await this.getDate(); this.activeIndex = localStorage.getItem('U_point');
if (localStorage.getItem('U_point') != null) { localStorage.removeItem('U_point');
this.activeIndex = localStorage.getItem('U_point'); }
localStorage.removeItem('U_point'); });
} await this.initJournal();
this.$forceUpdate()
// await this.getDate();
}, },
async activated() { async activated() { this.$nextTick(() => {
await this.initJournal(); if (localStorage.getItem('U_point') != null) {
// await this.getDate(); this.activeIndex = localStorage.getItem('U_point');
localStorage.removeItem('U_point');
}
});
await this.initJournal();
this.$forceUpdate()
// await this.getDate();
}, },
methods: { methods: {
async initJournal() { async initJournal() {
[1, 2, 4].forEach(async (e, i) => { [1, 2, 4].forEach(async (e, i) => {
this.$set(this.journals, i, await this.initselect(e)); // 使用 Vue.set 确保数据是响应式的 this.$set(this.journals, i, await this.initselect(e)); // 使用 Vue.set 确保数据是响应式的
// console.log('this.journals at line 80:', this.journals) // console.log('this.journals at line 80:', this.journals)
}); });
}, },
async initselect(e) { async initselect(e) {
var url = ''; var url = '';
var data = {}; var data = {};
switch (e) { switch (e) {
@@ -113,19 +121,17 @@ export default {
break; break;
} }
try { try {
const res = await this.$api.post(url, {...data }); const res = await this.$api.post(url, { ...data });
if(e==4){ if (e == 4) {
return res.data.journals; // 返回数据 return res.data.journals; // 返回数据
}else{ } else {
return res; // 返回数据 return res; // 返回数据
} }
} catch (error) { } catch (error) {
console.error('Error fetching data:', error); console.error('Error fetching data:', error);
return []; // 如果发生错误,返回空数组 return []; // 如果发生错误,返回空数组
} }
}, },
// 获取数据 // 获取数据
getDate() { getDate() {
@@ -158,7 +164,6 @@ export default {
</script> </script>
<style scoped> <style scoped>
.tab_all { .tab_all {
border-bottom: 1px solid #ddd; border-bottom: 1px solid #ddd;
} }
@@ -188,7 +193,7 @@ export default {
.tab_Select:hover { .tab_Select:hover {
} }
.sticky-header{ .sticky-header {
background-color: #fafafa; background-color: #fafafa;
} }
</style> </style>

View File

@@ -274,7 +274,7 @@
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
" "
>{{ v.realname || '-' }} >{{ v.realname || v.email ||'-' }}
</span> </span>
<svg <svg
@click="linkEmail(item, v.art_aut_id)" @click="linkEmail(item, v.art_aut_id)"