类型 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', factoryExpertYoungBoard: 'Young editorial board',
factoryExpertAuthor: 'Author', factoryExpertAuthor: 'Author',
factoryExpertDb: 'Expert database', factoryExpertDb: 'Expert database',
factoryExpertReviewer: 'Reviewer', factoryExpertYoungBoardBefore2025: 'Young board (before 2025)',
factoryExpertAuthorBefore2025: 'Author (before 2025)',
factoryExpertJump: 'View', factoryExpertJump: 'View',
factoryOfficialEmailTip: 'For this type, the system uses the official sender email by default. No account selection is required.', factoryOfficialEmailTip: 'For this type, the system uses the official sender email by default. No account selection is required.',
factoryScenario: 'Scenario', factoryScenario: 'Scenario',

View File

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

View File

@@ -1221,7 +1221,8 @@ export default {
if (t === '3') return this.$t('autoPromotion.factoryExpertYoungBoard'); if (t === '3') return this.$t('autoPromotion.factoryExpertYoungBoard');
if (t === '4') return this.$t('autoPromotion.factoryExpertAuthor'); if (t === '4') return this.$t('autoPromotion.factoryExpertAuthor');
if (t === '5') return this.$t('autoPromotion.factoryExpertDb'); 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 '-'; return '-';
}, },
getJournalDisplayTasks(journal) { getJournalDisplayTasks(journal) {

View File

@@ -490,7 +490,8 @@ export default {
if (t === '3') return this.$t('autoPromotion.factoryExpertYoungBoard'); if (t === '3') return this.$t('autoPromotion.factoryExpertYoungBoard');
if (t === '4') return this.$t('autoPromotion.factoryExpertAuthor'); if (t === '4') return this.$t('autoPromotion.factoryExpertAuthor');
if (t === '5') return this.$t('autoPromotion.factoryExpertDb'); 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 '-'; return '-';
}, },
getStatusType(status) { getStatusType(status) {

View File

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