diff --git a/src/components/common/langs/en.js b/src/components/common/langs/en.js index 4af9fc9..8b91dc4 100644 --- a/src/components/common/langs/en.js +++ b/src/components/common/langs/en.js @@ -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', diff --git a/src/components/common/langs/zh.js b/src/components/common/langs/zh.js index d76edac..181d2a4 100644 --- a/src/components/common/langs/zh.js +++ b/src/components/common/langs/zh.js @@ -1356,7 +1356,8 @@ const zh = { factoryExpertYoungBoard: '青年编委', factoryExpertAuthor: '作者', factoryExpertDb: 'expert库', - factoryExpertReviewer: '审稿人', + factoryExpertYoungBoardBefore2025: '2025前青年编委', + factoryExpertAuthorBefore2025: '2025前作者', factoryExpertJump: '查看', factoryOfficialEmailTip: '此类型默认使用系统官方邮箱发送,无需选择邮箱账号。', factoryScenario: '场景', diff --git a/src/components/page/autoPromotion.vue b/src/components/page/autoPromotion.vue index a79edb8..c884b68 100644 --- a/src/components/page/autoPromotion.vue +++ b/src/components/page/autoPromotion.vue @@ -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) { diff --git a/src/components/page/autoPromotionLogs.vue b/src/components/page/autoPromotionLogs.vue index 11c6561..8b27c46 100644 --- a/src/components/page/autoPromotionLogs.vue +++ b/src/components/page/autoPromotionLogs.vue @@ -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) { diff --git a/src/components/page/components/autoPromotion/PromotionFactoryTaskDialog.vue b/src/components/page/components/autoPromotion/PromotionFactoryTaskDialog.vue index e2aa124..4cac74a 100644 --- a/src/components/page/components/autoPromotion/PromotionFactoryTaskDialog.vue +++ b/src/components/page/components/autoPromotion/PromotionFactoryTaskDialog.vue @@ -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;