diff --git a/src/api/index.js b/src/api/index.js index 525753d..487fb66 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -19,8 +19,8 @@ const service = axios.create({ // baseURL: 'https://submission.tmrjournals.com/', //正式 记得切换 // baseURL: 'http://www.tougao.com/', //测试本地 记得切换 // baseURL: 'http://192.168.110.110/tougao/public/index.php/', - // baseURL: '/api', //本地 - baseURL: '/', //正式 + baseURL: '/api', //本地 + // baseURL: '/', //正式 }); diff --git a/src/components/common/Header.vue b/src/components/common/Header.vue index febaf40..07fbaac 100644 --- a/src/components/common/Header.vue +++ b/src/components/common/Header.vue @@ -181,6 +181,8 @@ export default { localStorage.removeItem('journalTypeData'); localStorage.removeItem('journalTypeDataAll'); localStorage.removeItem('opMedicalListData'); + localStorage.removeItem('mailboxCollect_j_email_id'); + localStorage.removeItem('mailboxCollect_journal_id'); this.$router.push('/login'); } }, diff --git a/src/components/common/Header2.vue b/src/components/common/Header2.vue index 5e0ee7b..e9dcd42 100644 --- a/src/components/common/Header2.vue +++ b/src/components/common/Header2.vue @@ -179,6 +179,8 @@ export default { localStorage.removeItem('journalTypeData'); localStorage.removeItem('journalTypeDataAll'); localStorage.removeItem('opMedicalListData'); + localStorage.removeItem('mailboxCollect_j_email_id'); + localStorage.removeItem('mailboxCollect_journal_id'); this.$router.push('/login'); } }, diff --git a/src/components/common/Sidebar.vue b/src/components/common/Sidebar.vue index 901975e..eb8db1a 100644 --- a/src/components/common/Sidebar.vue +++ b/src/components/common/Sidebar.vue @@ -184,6 +184,9 @@ {{ $t('sidebar.scholarCrawlers') }} + + {{ $t('sidebar.crawlerKeywords') }} + Management System diff --git a/src/components/common/langs/en.js b/src/components/common/langs/en.js index c390035..c5c0802 100644 --- a/src/components/common/langs/en.js +++ b/src/components/common/langs/en.js @@ -276,6 +276,7 @@ const en = { mailboxManagement: 'Mailbox Management', mailboxConfig: 'Mailbox Management', scholarCrawlers: 'Scholar Crawlers', + crawlerKeywords: 'Crawl Keywords', expertDatabase: 'Expert Database', autoPromotion: 'Auto Promotion', ReArticles: 'Rejected Manuscripts', // 被拒稿件 @@ -530,7 +531,57 @@ colTitle: 'Template title', loadingMore: 'Loading more...', noMore: 'No more', yesterday: 'Yesterday', - selectAccountTip: 'Please select an email account first.' + selectAccountTip: 'Please select an email account first.', + attachmentCount: ' attachment(s)', + downloadFail: 'Download failed', + accountNotBelong: 'This account does not belong to you. Please select another one.', + totalAttachments: '{count} attachment(s) in total', + etcSuffix: '... etc.', + viewAttachments: 'View attachments', + newMailArrived: '{count} new mail(s) received, click to view', + downloadAllZip: 'Download all', + packingAttachments: 'Packing attachments, please wait...', + downloadBtn: 'Download', + printBtn: 'Print', + previewNotSupported: 'This file format cannot be previewed online', + downloadToView: 'Download to view locally', + }, + crawlerKeywords: { + pageTitle: 'Keyword Configuration', + pageDesc: 'Manage core search terms for discovering experts.', + exportData: 'Export Data', + startCrawl: 'Start Crawl', + inputPlaceholder: 'Enter new keyword, e.g. deep learning, semiconductor expert...', + addKeyword: 'Add Keyword', + searchPlaceholder: 'Search keywords...', + searchBtn: 'Search', + totalCount: '{count} keyword(s) in total', + colKeyword: 'Keyword', + colCategory: 'Category', + colStatus: 'Status', + colExpertCount: 'Expert Count', + colLastCrawl: 'Last Crawl', + colAction: 'Action', + save: 'Save', + cancel: 'Cancel', + stateRunning: 'Running', + statePaused: 'Paused', + stateError: 'Error', + stateDone: 'Done', + emptyKeywordWarn: 'Please enter a keyword', + addSuccess: 'Added successfully', + addFail: 'Failed to add', + updateSuccess: 'Updated successfully', + updateFail: 'Failed to update', + deleteConfirm: 'Are you sure to delete this keyword? This action cannot be undone.', + confirmTitle: 'Confirm', + deleteSuccess: 'Deleted successfully', + deleteFail: 'Failed to delete', + refreshSuccess: 'Refreshed successfully', + refreshFail: 'Failed to refresh', + crawlStarted: 'Crawl task started', + crawlFail: 'Failed to start crawl', + exportFail: 'Failed to export', }, mailboxSend: { title: 'Write mail', diff --git a/src/components/common/langs/zh.js b/src/components/common/langs/zh.js index 46fb914..9c473c9 100644 --- a/src/components/common/langs/zh.js +++ b/src/components/common/langs/zh.js @@ -264,6 +264,7 @@ const zh = { scholarCrawlers: '学者数据库', + crawlerKeywords: '抓取关键词配置', expertDatabase: '专家库', autoPromotion: '自动推广', ReArticles: '被拒稿件', // 被拒稿件 @@ -520,6 +521,56 @@ const zh = { noMore: '没有更多了', yesterday: '昨天', selectAccountTip: '请先选择一个邮箱账号.', + attachmentCount: '个附件', + downloadFail: '下载失败', + accountNotBelong: '该邮箱账号不属于当前用户,请重新选择', + totalAttachments: '共{count}个附件', + etcSuffix: '... 等', + viewAttachments: '查看附件', + newMailArrived: '收到 {count} 封新邮件,点击查看', + downloadAllZip: '打包下载', + packingAttachments: '正在打包附件,请稍后...', + downloadBtn: '下载', + printBtn: '打印', + previewNotSupported: '该文件格式无法在线预览', + downloadToView: '下载到本地查看', + }, + crawlerKeywords: { + pageTitle: '关键词配置', + pageDesc: '管理用于发现专家的核心搜索词。', + exportData: '导出数据', + startCrawl: '开始抓取', + inputPlaceholder: '输入新关键词,例如:深度学习、半导体专家...', + addKeyword: '添加关键词', + searchPlaceholder: '搜索关键词...', + searchBtn: '搜索', + totalCount: '共 {count} 个词条', + colKeyword: '关键词', + colCategory: '分类', + colStatus: '状态', + colExpertCount: '专家数量', + colLastCrawl: '最后抓取', + colAction: '操作', + save: '保存', + cancel: '取消', + stateRunning: '运行中', + statePaused: '已暂停', + stateError: '异常', + stateDone: '已完成', + emptyKeywordWarn: '请输入关键词', + addSuccess: '添加成功', + addFail: '添加失败', + updateSuccess: '更新成功', + updateFail: '更新失败', + deleteConfirm: '确定删除该关键词吗?删除后无法恢复。', + confirmTitle: '提示', + deleteSuccess: '删除成功', + deleteFail: '删除失败', + refreshSuccess: '刷新成功', + refreshFail: '刷新失败', + crawlStarted: '抓取任务已启动', + crawlFail: '启动抓取失败', + exportFail: '导出失败', }, mailboxSend: { title: '写邮件', diff --git a/src/components/page/autoPromotion.vue b/src/components/page/autoPromotion.vue index 270a8d8..4f1bdd8 100644 --- a/src/components/page/autoPromotion.vue +++ b/src/components/page/autoPromotion.vue @@ -445,7 +445,7 @@ export default { .journal-info { display: flex; align-items: center; } .icon-box { width: 28px; height: 28px; background: #edf5ff; border-radius: 4px; display: flex; align-items: center; justify-content: center; margin-right: 10px; } .icon-box i { color: #409eff; font-size: 14px; } -.journal-name { font-size: 16px; font-weight: 600; color: #1f2d3d; } +.journal-name { font-size: 14px; font-weight: 600; color: #1f2d3d; } .module-wrapper { display: grid; grid-template-columns: 1fr; } .module-card { border-radius: 6px; padding: 14px; display: flex; flex-direction: column; min-height: 160px; border: 1px solid transparent; } .is-solicit-active { background: #f4f9ff; border-color: #e1eeff; } diff --git a/src/components/page/components/email/FilePreviewDialog.vue b/src/components/page/components/email/FilePreviewDialog.vue new file mode 100644 index 0000000..c3979d0 --- /dev/null +++ b/src/components/page/components/email/FilePreviewDialog.vue @@ -0,0 +1,237 @@ + + + + + \ No newline at end of file diff --git a/src/components/page/components/email/MailDetail.vue b/src/components/page/components/email/MailDetail.vue index ba8f605..51ee67b 100644 --- a/src/components/page/components/email/MailDetail.vue +++ b/src/components/page/components/email/MailDetail.vue @@ -1,164 +1,354 @@ - - - - \ No newline at end of file + .attachment-brief-bar .first-file-name { + color: #909399; + margin-left: 4px; + } + .jump-link { + margin-left: 15px; + font-size: 13px; + } +.attachment-section { + margin-top: 30px; + padding-top: 20px; + border-top: 2px solid #f0f2f5; +} + diff --git a/src/components/page/components/email/TmrEmailEditor.vue b/src/components/page/components/email/TmrEmailEditor.vue index 5842507..0d3e9d2 100644 --- a/src/components/page/components/email/TmrEmailEditor.vue +++ b/src/components/page/components/email/TmrEmailEditor.vue @@ -8,6 +8,7 @@