This commit is contained in:
2025-06-03 09:22:40 +08:00
parent 94ab97b501
commit 5f50e448cb
6 changed files with 225 additions and 194 deletions

View File

@@ -1,134 +1,185 @@
<template> <template>
<div> <div>
<!-- <div class="crumbs"> <!-- <div class="crumbs">
<el-breadcrumb separator="/"> <el-breadcrumb separator="/">
<el-breadcrumb-item> <el-breadcrumb-item>
<i class="el-icon-lx-cascades"></i> Manuscripts list <i class="el-icon-lx-cascades"></i> Manuscripts list
</el-breadcrumb-item> </el-breadcrumb-item>
</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>
<!-- 接收的文章 --> <!-- 接收的文章 -->
<p @click="tabIndex(2)" :class="activeIndex == 2 ? 'tab_Normal tab_Select' : 'tab_Normal'">Produce</p> <p @click="tabIndex(2)" :class="activeIndex == 2 ? 'tab_Normal tab_Select' : 'tab_Normal'">Produce</p>
<!-- 等作者确认 --> <!-- 等作者确认 -->
<!-- <p @click="tabIndex(3)" :class="activeIndex == 3 ? 'tab_Normal tab_Select' : 'tab_Normal'">Proof</p> --> <!-- <p @click="tabIndex(3)" :class="activeIndex == 3 ? 'tab_Normal tab_Select' : 'tab_Normal'">Proof</p> -->
<!-- 已经发表 --> <!-- 已经发表 -->
<p @click="tabIndex(3)" :class="activeIndex == 3 ? 'tab_Normal tab_Select' : 'tab_Normal'">Online</p> <p @click="tabIndex(3)" :class="activeIndex == 3 ? 'tab_Normal tab_Select' : 'tab_Normal'">Online</p>
<!-- 连续出版 --> <!-- 连续出版 -->
<!-- <p @click="tabIndex(4)" :class="activeIndex == 4 ? 'tab_Normal tab_Select' : 'tab_Normal'" <!-- <p @click="tabIndex(4)" :class="activeIndex == 4 ? 'tab_Normal tab_Select' : 'tab_Normal'"
v-if="preJouList">Pre-publish</p> --> v-if="preJouList">Pre-publish</p> -->
<!-- 出版的 --> <!-- 出版的 -->
<p @click="tabIndex(5)" :class="activeIndex == 5 ? 'tab_Normal tab_Select' : 'tab_Normal'">Publish</p> <p @click="tabIndex(5)" :class="activeIndex == 5 ? 'tab_Normal tab_Select' : 'tab_Normal'">Publish</p>
<!-- 调查与撤回 --> <!-- 调查与撤回 -->
<!-- <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"> <div class="container" style="padding: 20px 15px">
<articleListA v-if="activeIndex=='1'"></articleListA>
<articleListB v-if="activeIndex=='2'" @changeEvent="changeEvent"></articleListB> <articleListA v-if="activeIndex == '1'" :journals="journals[0]"></articleListA>
<articleListC v-if="activeIndex=='3'"></articleListC> <articleListB v-if="activeIndex == '2'" :journals="journals[1]" @changeEvent="changeEvent"></articleListB>
<articleListD v-if="activeIndex=='4'"></articleListD> <articleListC v-if="activeIndex == '3'" :journals="journals[0]"></articleListC>
<articleListE v-if="activeIndex=='5'"></articleListE> <articleListD v-if="activeIndex == '4'" ></articleListD>
<articleListF v-if="activeIndex=='6'"></articleListF> <articleListE v-if="activeIndex == '5'" :journals="journals[2]"></articleListE>
</div> <articleListF v-if="activeIndex == '6'" ></articleListF>
</div> </div>
</div>
</template> </template>
<script> <script>
import articleListA from './articleListEditor_A' import articleListA from './articleListEditor_A';
import articleListB from './articleListEditor_B' import articleListB from './articleListEditor_B';
import articleListC from './articleListEditor_C' import articleListC from './articleListEditor_C';
import articleListD from './articleListEditor_D' import articleListD from './articleListEditor_D';
import articleListE from './articleListEditor_E' import articleListE from './articleListEditor_E';
import articleListF from './articleListEditor_F' import articleListF from './articleListEditor_F';
export default { export default {
name: 'articleListEditor', name: 'articleListEditor',
data() { data() {
return { return {
activeIndex: 1, activeIndex: 1,
preJouList: false journals: [],
}; preJouList: false
}, };
components: { },
articleListA, components: {
articleListB, articleListA,
articleListC, articleListB,
articleListD, articleListC,
articleListE, articleListD,
articleListF, articleListE,
}, articleListF
created() { },
this.getDate(); async created() {
if (localStorage.getItem('U_point') != null) { await this.initJournal();
this.activeIndex = localStorage.getItem('U_point') // await this.getDate();
localStorage.removeItem('U_point') if (localStorage.getItem('U_point') != null) {
} this.activeIndex = localStorage.getItem('U_point');
}, localStorage.removeItem('U_point');
activated() { }
this.getDate(); },
}, async activated() {
methods: { await this.initJournal();
// 获取数据 // await this.getDate();
getDate() { },
// 连续出刊是否展示 methods: {
this.$api async initJournal() {
.post('api/Article/getContinuityJournals', { [1, 2, 4].forEach(async (e, i) => {
'editor_id': localStorage.getItem('U_id') this.$set(this.journals, i, await this.initselect(e)); // 使用 Vue.set 确保数据是响应式的
})
.then(res => { console.log('this.journals at line 80:', this.journals)
if (res.data.journals.length > 0) { });
this.preJouList = true },
} async initselect(e) {
}) var url = '';
.catch(err => { var data = {};
console.log(err); switch (e) {
}); case 1:
}, case 3:
case 5:
// 点击切换 url = 'api/Article/getJournal';
tabIndex(e) { data = {
this.activeIndex = e username: localStorage.getItem('U_name')
}, };
break;
case 2:
url = 'api/Article/getJournalOutLx';
data = {
editor_id: localStorage.getItem('U_id')
};
break;
case 4:
url = 'api/Article/getContinuityJournals';
data = {
editor_id: localStorage.getItem('U_id')
};
break;
}
// 获取子级的切换 try {
changeEvent(e) { const res = await this.$api.post(url, {...data });
this.tabIndex(e) if(e==4){
}, return res.data.journals; // 返回数据
} }else{
}; return res; // 返回数据
}
} catch (error) {
console.error('Error fetching data:', error);
return []; // 如果发生错误,返回空数组
}
},
// 获取数据
getDate() {
// 连续出刊是否展示
this.$api
.post('api/Article/getContinuityJournals', {
editor_id: localStorage.getItem('U_id')
})
.then((res) => {
if (res.data.journals.length > 0) {
this.preJouList = true;
}
})
.catch((err) => {
console.log(err);
});
},
// 点击切换
tabIndex(e) {
this.activeIndex = e;
},
// 获取子级的切换
changeEvent(e) {
this.tabIndex(e);
}
}
};
</script> </script>
<style scoped> <style scoped>
.tab_all { .tab_all {
border-bottom: 1px solid #ddd; border-bottom: 1px solid #ddd;
} }
.tab_Normal { .tab_Normal {
font-size: 15px; font-size: 15px;
border: 1px solid #fff; border: 1px solid #fff;
border-top: 3px solid #fff; border-top: 3px solid #fff;
border-bottom: none; border-bottom: none;
float: left; float: left;
margin: 10px 0 -1px 0; margin: 0px 0 -1px 0;
padding: 20px 30px; padding: 16px 30px;
cursor: pointer; cursor: pointer;
background-color: #fafafa; background-color: #fafafa;
} }
.tab_Normal:hover { .tab_Normal:hover {
text-decoration: underline; text-decoration: underline;
}
} .tab_Select {
background-color: #fff;
border: 1px solid #ddd;
border-top: 3px solid #6dafcf;
border-bottom: 1px solid #fff;
}
.tab_Select { .tab_Select:hover {
background-color: #fff; }
border: 1px solid #ddd;
border-top: 3px solid #6dafcf;
border-bottom: 1px solid #fff;
}
.tab_Select:hover {}
</style> </style>

View File

@@ -34,7 +34,7 @@
</el-select> --> </el-select> -->
<el-select v-model="query.journal" @change="chageJour" placeholder="Please select journal"> <el-select v-model="query.journal" @change="chageJour" placeholder="Please select journal">
<el-option :key="0" label="All journals" :value="0"></el-option> <el-option :key="0" label="All journals" :value="0"></el-option>
<el-option v-for="item in items" :key="item.journal_id" :label="item.title" :value="item.journal_id"> </el-option> <el-option v-for="item in journals" :key="item.journal_id" :label="item.title" :value="item.journal_id"> </el-option>
</el-select> </el-select>
<p style="height: 5px"></p> <p style="height: 5px"></p>
@@ -1209,6 +1209,7 @@ export default {
components: { components: {
timetalk timetalk
}, },
props:['journals'],
data() { data() {
return { return {
isShowAI: false, isShowAI: false,
@@ -1218,7 +1219,7 @@ export default {
curState: null, curState: null,
baseUrl: this.Common.baseUrl, baseUrl: this.Common.baseUrl,
mediaUrl: this.Common.mediaUrl, mediaUrl: this.Common.mediaUrl,
items: '',
currentTabIndex: 0, currentTabIndex: 0,
currentTabName: '', currentTabName: '',
HIndexList: [ HIndexList: [
@@ -1321,7 +1322,7 @@ export default {
Hindex: 0 Hindex: 0
}, },
guestList: [], guestList: [],
journals: [], // journals: [],
journalTran: [], journalTran: [],
nextState: [ nextState: [
{ {
@@ -1359,7 +1360,7 @@ export default {
}; };
}, },
created() { created() {
this.initselect();
this.getdate(); this.getdate();
}, },
computed: { computed: {
@@ -1480,20 +1481,7 @@ export default {
} }
return str; return str;
}, },
//初始化期刊选项
initselect() {
this.$api
.post('api/Article/getJournal', {
username: this.query.username
})
.then((res) => {
this.items = res;
this.journals = res;
})
.catch((err) => {
console.log(err);
});
},
// 创建复审 // 创建复审
crateRevision(item) { crateRevision(item) {
// 二次询问 // 二次询问
@@ -2588,7 +2576,7 @@ export default {
color: #333; color: #333;
margin: 0 0 20px 0; margin: 0 0 20px 0;
font-size: 14px; font-size: 14px;
padding: 20px; padding:10px 20px;
border-radius: 5px; border-radius: 5px;
border: 1px solid #ebeef5; border: 1px solid #ebeef5;
background-color: #fff; background-color: #fff;
@@ -2605,7 +2593,7 @@ export default {
} }
.mangu_list > div { .mangu_list > div {
margin-bottom: 8px; /* margin-bottom: 8px; */
} }
.mangu_list .man_title { .mangu_list .man_title {
@@ -2692,7 +2680,7 @@ export default {
.mangu_list .fixCard { .mangu_list .fixCard {
text-align: center; text-align: center;
background: #0066990d; background: #0066990d;
padding: 20px; padding:14px 20px;
} }
.gugeList { .gugeList {

View File

@@ -4,7 +4,7 @@
<el-select v-model="queryType.journal_id" @change="getDateType" placeholder="Please select journal" <el-select v-model="queryType.journal_id" @change="getDateType" placeholder="Please select journal"
style="width: 300px;"> style="width: 300px;">
<el-option :key="0" label="All journals" :value="0"></el-option> <el-option :key="0" label="All journals" :value="0"></el-option>
<el-option v-for="item in journalList" :key="item.journal_id" :label="item.title" <el-option v-for="item in journals" :key="item.journal_id" :label="item.title"
:value="item.journal_id"></el-option> :value="item.journal_id"></el-option>
</el-select> </el-select>
</div> </div>
@@ -85,6 +85,7 @@
Loading Loading
} from 'element-ui'; } from 'element-ui';
export default { export default {
props: ['journals'],
data() { data() {
return { return {
baseUrl: this.Common.baseUrl, baseUrl: this.Common.baseUrl,
@@ -110,23 +111,12 @@
}; };
}, },
created() { created() {
this.initSelect(); // this.initSelect();
this.getDateType(); this.getDateType();
}, },
methods: { methods: {
//初始化期刊 //初始化期刊
initSelect() {
this.$api
.post('api/Article/getJournalOutLx', {
'editor_id': this.queryType.editor_id
})
.then(res => {
this.journalList = res;
})
.catch(err => {
console.log(err);
});
},
// 初始化列表 // 初始化列表
getDateType() { getDateType() {
const loading = this.$loading({ const loading = this.$loading({

View File

@@ -2,7 +2,7 @@
<div> <div>
<div class="handle-box"> <div class="handle-box">
<el-select v-model="query.issn" @change="selectJournal" placeholder="Please select journal" style="width: 500px"> <el-select v-model="query.issn" @change="selectJournal" placeholder="Please select journal" style="width: 500px">
<el-option v-for="item in jourList" :key="item.issn" :label="item.title" :value="item.issn"> <el-option v-for="item in journals" :key="item.issn" :label="item.title" :value="item.issn">
<span style="float: left">{{ item.title }}</span> <span style="float: left">{{ item.title }}</span>
<span <span
style=" style="
@@ -178,6 +178,7 @@ export default {
commonOnlineOperations commonOnlineOperations
}, },
props: ['journals'],
data() { data() {
return { return {
baseUrl: this.Common.baseUrl, baseUrl: this.Common.baseUrl,
@@ -189,7 +190,7 @@ export default {
currentJournal: {}, currentJournal: {},
sortForm: {}, sortForm: {},
tableData: [], tableData: [],
jourList: [],
pubVisible: false, pubVisible: false,
sortVisible: false, sortVisible: false,
re_finsh: 1, re_finsh: 1,
@@ -263,24 +264,31 @@ export default {
}, },
// 获取数据 // 获取数据
getDate() { getDate() {
console.log('at line 189:', localStorage.getItem('U_pointJour')); // console.log('at line 189:', localStorage.getItem('U_pointJour'));
this.$api // this.$api
.post('api/Article/getJournal', { // .post('api/Article/getJournal', {
username: this.query.username // username: this.query.username
}) // })
.then((res) => { // .then((res) => {
this.jourList = res; // this.jourList = res;
if (localStorage.getItem('U_pointJour') == null) {
this.query.issn = this.jourList[0].issn; // })
// .catch((err) => {
// console.log(err);
// });
if (localStorage.getItem('U_pointJour') == null) {
this.query.issn = this.journals[0].issn;
this.currentJournal = this.jourList[0]; this.currentJournal = this.journals[0];
if (this.currentJournal.cycle != 0) { if (this.currentJournal.cycle != 0) {
this.getNoralDate(); this.getNoralDate();
} else { } else {
this.getNoralDate0(); this.getNoralDate0();
} }
} else { } else {
var info = this.jourList.find((e) => e.journal_id == localStorage.getItem('U_pointJour')); var info = this.journals.find((e) => e.journal_id == localStorage.getItem('U_pointJour'));
this.query.issn = info.issn; this.query.issn = info.issn;
if (this.currentJournal.cycle != 0) { if (this.currentJournal.cycle != 0) {
this.getNoralDate(); this.getNoralDate();
@@ -288,15 +296,11 @@ export default {
this.getNoralDate0(); this.getNoralDate0();
} }
} }
})
.catch((err) => {
console.log(err);
});
}, },
selectJournal(v) { selectJournal(v) {
console.log('e at line 155:', v); console.log('e at line 155:', v);
this.tableData = []; this.tableData = [];
this.currentJournal = this.jourList.find((e) => e.issn == v); this.currentJournal = this.journals.find((e) => e.issn == v);
if (this.currentJournal.cycle != 0) { if (this.currentJournal.cycle != 0) {
this.getNoralDate(); this.getNoralDate();

View File

@@ -3,7 +3,7 @@
<div class="handle-box"> <div class="handle-box">
<el-select v-model="queryType.journal_id" @change="getDateType" placeholder="Please select journal" <el-select v-model="queryType.journal_id" @change="getDateType" placeholder="Please select journal"
style="width: 300px;"> style="width: 300px;">
<el-option v-for="item in journalList" :key="item.journal_id" :label="item.title" <el-option v-for="item in journals" :key="item.journal_id" :label="item.title"
:value="item.journal_id"></el-option> :value="item.journal_id"></el-option>
</el-select> </el-select>
</div> </div>
@@ -84,12 +84,13 @@
Loading Loading
} from 'element-ui'; } from 'element-ui';
export default { export default {
props: ['journals'],
data() { data() {
return { return {
baseUrl: this.Common.baseUrl, baseUrl: this.Common.baseUrl,
mediaUrl: this.Common.mediaUrl, mediaUrl: this.Common.mediaUrl,
uploadUrl: '/tsfile/', uploadUrl: '/tsfile/',
journalList: [],
queryType: { queryType: {
username: localStorage.getItem('U_name'), username: localStorage.getItem('U_name'),
editor_id: localStorage.getItem('U_id'), editor_id: localStorage.getItem('U_id'),
@@ -113,20 +114,13 @@
methods: { methods: {
//初始化期刊 //初始化期刊
initSelect() { initSelect() {
this.$api
.post('api/Article/getContinuityJournals', {
'editor_id': this.queryType.editor_id
}) if (this.journals.length > 0) {
.then(res => { this.queryType.journal_id = this.journals[0].journal_id
this.journalList = res.data.journals;
if (this.journalList.length > 0) {
this.queryType.journal_id = this.journalList[0].journal_id
this.getDateType(); this.getDateType();
} }
})
.catch(err => {
console.log(err);
});
}, },
// 初始化列表 // 初始化列表
getDateType() { getDateType() {

View File

@@ -2,7 +2,7 @@
<div> <div>
<div class="handle-box"> <div class="handle-box">
<el-select v-model="queryType.issn" @change="getJourChange" placeholder="Please select a journal" style="width: 250px"> <el-select v-model="queryType.issn" @change="getJourChange" placeholder="Please select a journal" style="width: 250px">
<el-option v-for="item in journalList" :key="item.issn" :label="item.title" :value="item.issn"> </el-option> <el-option v-for="item in journals" :key="item.issn" :label="item.title" :value="item.issn"> </el-option>
</el-select> </el-select>
<el-select <el-select
v-model="queryType.journal_stage_id" v-model="queryType.journal_stage_id"
@@ -475,6 +475,7 @@ import commonOnlineOperations from '@/components/page/components/article/onlineO
import { Loading } from 'element-ui'; import { Loading } from 'element-ui';
import { watch } from 'vue'; import { watch } from 'vue';
export default { export default {
props: ['journals'],
components: { components: {
commonOnlineOperations commonOnlineOperations
}, },
@@ -545,7 +546,7 @@ export default {
Total: 0, Total: 0,
dataTable: [], dataTable: [],
stageList: [], stageList: [],
journalList: [],
guestList: [], guestList: [],
EditMes: { EditMes: {
journal_special_id: 0, journal_special_id: 0,
@@ -733,19 +734,22 @@ export default {
//初始化期刊分期 //初始化期刊分期
getJourDate() { getJourDate() {
this.$api // this.$api
.post('api/Article/getJournal', { // .post('api/Article/getJournal', {
username: this.username // username: this.username
}) // })
.then((res) => { // .then((res) => {
this.journalList = res; // this.journalList = res;
this.queryType.issn = res[0].issn; if(this.journals.length > 0){
this.queryType.issn = this.journals[0].issn;this.getStageDate();
}
this.getStageDate(); //
}) // })
.catch((err) => { // .catch((err) => {
console.log(err); // console.log(err);
}); // });
}, },
//选择期刊 //选择期刊