类型 6 青年编委2025前 7 作者2025年之前的

This commit is contained in:
2026-05-20 09:10:01 +08:00
parent 7570e0a1eb
commit 7542d724ce
5 changed files with 75 additions and 32 deletions

View File

@@ -1375,7 +1375,8 @@ const en = {
factoryExpertYoungBoard: 'Young editorial board',
factoryExpertAuthor: 'Author',
factoryExpertDb: 'Expert database',
factoryExpertReviewer: 'Reviewer',
factoryExpertYoungBoardBefore2025: 'Young board (before 2025)',
factoryExpertAuthorBefore2025: 'Author (before 2025)',
factoryExpertJump: 'View',
factoryOfficialEmailTip: 'For this type, the system uses the official sender email by default. No account selection is required.',
factoryScenario: 'Scenario',

View File

@@ -1356,7 +1356,8 @@ const zh = {
factoryExpertYoungBoard: '青年编委',
factoryExpertAuthor: '作者',
factoryExpertDb: 'expert库',
factoryExpertReviewer: '审稿人',
factoryExpertYoungBoardBefore2025: '2025前青年编委',
factoryExpertAuthorBefore2025: '2025前作者',
factoryExpertJump: '查看',
factoryOfficialEmailTip: '此类型默认使用系统官方邮箱发送,无需选择邮箱账号。',
factoryScenario: '场景',

View File

@@ -1221,7 +1221,8 @@ export default {
if (t === '3') return this.$t('autoPromotion.factoryExpertYoungBoard');
if (t === '4') return this.$t('autoPromotion.factoryExpertAuthor');
if (t === '5') return this.$t('autoPromotion.factoryExpertDb');
if (t === '6') return this.$t('autoPromotion.factoryExpertReviewer');
if (t === '6') return this.$t('autoPromotion.factoryExpertYoungBoardBefore2025');
if (t === '7') return this.$t('autoPromotion.factoryExpertAuthorBefore2025');
return '-';
},
getJournalDisplayTasks(journal) {

View File

@@ -490,7 +490,8 @@ export default {
if (t === '3') return this.$t('autoPromotion.factoryExpertYoungBoard');
if (t === '4') return this.$t('autoPromotion.factoryExpertAuthor');
if (t === '5') return this.$t('autoPromotion.factoryExpertDb');
if (t === '6') return this.$t('autoPromotion.factoryExpertReviewer');
if (t === '6') return this.$t('autoPromotion.factoryExpertYoungBoardBefore2025');
if (t === '7') return this.$t('autoPromotion.factoryExpertAuthorBefore2025');
return '-';
},
getStatusType(status) {

View File

@@ -354,8 +354,9 @@
chief: null,
board: null,
young: null,
youngBefore2025: null,
authorBefore2025: null,
author: null,
reviewer: null,
expertDb: null
},
expertTypeCountsLoading: false,
@@ -434,11 +435,19 @@
},
{
value: '6',
label: this.$t('autoPromotion.factoryExpertReviewer'),
desc: this.$t('autoPromotion.factoryExpertReviewer'),
icon: 'el-icon-s-check',
count: counts.reviewer,
jump: { path: '/reviewerList', queryKey: 'journal_id' }
label: this.$t('autoPromotion.factoryExpertYoungBoardBefore2025'),
desc: this.$t('autoPromotion.factoryExpertYoungBoardBefore2025'),
icon: 'el-icon-time',
count: counts.youngBefore2025,
jump: { path: '/youthList', queryKey: 'journal_id' }
},
{
value: '7',
label: this.$t('autoPromotion.factoryExpertAuthorBefore2025'),
desc: this.$t('autoPromotion.factoryExpertAuthorBefore2025'),
icon: 'el-icon-document',
count: counts.authorBefore2025,
jump: { path: '/partyListCorr', queryKey: 'journal_id' }
},
{
value: '4',
@@ -892,12 +901,28 @@
this.availableFields = [];
this.factoryFieldIds = [];
this.selectedEmailIds = [];
this.expertTypeCounts = { chief: null, board: null, young: null, author: null, reviewer: null, expertDb: null };
this.expertTypeCounts = {
chief: null,
board: null,
young: null,
youngBefore2025: null,
authorBefore2025: null,
author: null,
expertDb: null
};
this.syncActiveStep();
return;
}
// 切换期刊时:先清空旧人数并立即触发 loading
this.expertTypeCounts = { chief: null, board: null, young: null, author: null, reviewer: null, expertDb: null };
this.expertTypeCounts = {
chief: null,
board: null,
young: null,
youngBefore2025: null,
authorBefore2025: null,
author: null,
expertDb: null
};
this.fetchExpertTypeCounts();
await this.loadAccounts(val);
await Promise.all([
@@ -915,6 +940,7 @@
const payload = {
from: 'promotionFactory',
journal_id: journalId != null && journalId !== '' ? String(journalId) : '',
expert_type: opt && opt.value != null ? String(opt.value) : '',
ts: Date.now(),
targetPath: String(jump.path || '')
};
@@ -947,19 +973,21 @@
return sum;
};
const [boardRes, youngRes, authorRes, reviewerRes, expertDbRes] = await Promise.all([
const yboardBase = {
journal_id: journalId,
pageIndex: 1,
pageSize: 1,
keywords: '',
fieldkey: '',
order_remark: 0
};
const [boardRes, youngRes, youngBefore2025Res, authorRes, authorBefore2025Res, expertDbRes] = await Promise.all([
this.$api.post('api/Board/getBoards', { journal_id: journalId }).catch(() => null),
this.$api
.post('api/User/getYboardlist', {
journal_id: journalId,
type: 1,
year: 0,
pageIndex: 1,
pageSize: 1,
keywords: '',
fieldkey: '',
order_remark: 0
})
.post('api/User/getYboardlist', Object.assign({}, yboardBase, { type: 1, year: 0 }))
.catch(() => null),
this.$api
.post('api/User/getYboardlist', Object.assign({}, yboardBase, { type: 6, year: 0 }))
.catch(() => null),
this.$api
.post('api/User/authorDatabase', {
@@ -970,12 +998,12 @@
})
.catch(() => null),
this.$api
.post('api/Reviewer/getReviewerListByJournal', {
username: localStorage.getItem('U_name'),
journalId: journalId,
class: 0,
pageIndex: 1,
pageSize: 1
.post('api/User/authorDatabase', {
journal_id: journalId,
type: 7,
keywords: '',
page: 1,
limit: 1
})
.catch(() => null),
this.$api
@@ -986,7 +1014,15 @@
.catch(() => null)
]);
const next = { chief: null, board: null, young: null, author: null, reviewer: null, expertDb: null };
const next = {
chief: null,
board: null,
young: null,
youngBefore2025: null,
authorBefore2025: null,
author: null,
expertDb: null
};
if (boardRes && boardRes.code === 0 && boardRes.data && boardRes.data.boards) {
const b = boardRes.data.boards || {};
@@ -999,11 +1035,14 @@
if (youngRes && youngRes.code === 0) {
next.young = safeCount(youngRes.data && youngRes.data.count);
}
if (youngBefore2025Res && youngBefore2025Res.code === 0) {
next.youngBefore2025 = safeCount(youngBefore2025Res.data && youngBefore2025Res.data.count);
}
if (authorRes && authorRes.code === 0) {
next.author = safeCount(authorRes.data && authorRes.data.count);
}
if (reviewerRes && reviewerRes.code === 0) {
next.reviewer = safeCount(reviewerRes.total);
if (authorBefore2025Res && authorBefore2025Res.code === 0) {
next.authorBefore2025 = safeCount(authorBefore2025Res.data && authorBefore2025Res.data.count);
}
if (expertDbRes && expertDbRes.code === 0) {
const total = (expertDbRes.data && (expertDbRes.data.total || expertDbRes.data.count)) || expertDbRes.total;