diff --git a/src/api/index.js b/src/api/index.js index 487fb66..525753d 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/langs/en.js b/src/components/common/langs/en.js index 5d8f87a..17df994 100644 --- a/src/components/common/langs/en.js +++ b/src/components/common/langs/en.js @@ -50,6 +50,8 @@ const en = { plagiarismNotChecked: 'Not checked', plagiarismChecking: 'Checking…', plagiarismRecheck: 'Re-check', + plagiarismRecheckConfirm: 'Start a new plagiarism check for this manuscript?', + plagiarismRecheckCancel: 'Cancel', plagiarismDuplicateCheck: 'Re-check', plagiarismCheckFailed: 'Failed to start plagiarism check.', plagiarismStatusFailed: 'Failed to load plagiarism status.', @@ -62,6 +64,9 @@ const en = { plagiarismSimilarity: 'Similarity', plagiarismFile: 'File', plagiarismPreviewPdf: 'Preview report', + plagiarismDownloadReport: 'Download report', + plagiarismOnlinePreview: 'Online preview', + plagiarismOnlinePreviewFailed: 'Failed to load online preview URL.', plagiarismReportLink: 'Report', plagiarismNoPdfLink: 'No link', plagiarismPreviewClose: 'Close', @@ -1569,8 +1574,48 @@ const en = { cancel: 'Cancel' }, refRelevance: { - startDetect: 'Start relevance check', - detecting: 'Detecting…', + startDetect: 'Batch Audit Reference Context', + startDetectTip: + 'Launch AI semantic consistency verification for all references against in-text citations.', + checkComplete: 'Relevance check completed', + detectingAi: 'Proofreading', + auditProgressTitle: 'Batch reference context audit in progress', + queuePositionLabel: 'Queue position:', + queuePositionNum: 'No. {n}', + queueAheadPrefix: 'Ahead:', + queueAheadSuffix: ' article(s) waiting for reference relevance check', + progressCount: '{done}/{total}', + progressCountShort: '{done} done', + startFailed: 'Failed to start proofreading', + statusFailed: 'Failed to fetch proofreading status', + progressFailed: 'Failed to fetch check progress', + detailsFailed: 'Failed to load AI proofreading details', + detailsEmpty: 'No AI proofreading details available', + noReferId: 'Missing reference ID', + noArticleId: 'Missing article ID; cannot run check', + detecting: 'Checking', + pendingDetect: 'Pending', + detectFailed: 'Check failed', + notFound: 'Not found', + copyInsight: 'Copy analysis', + copySuccess: 'Copied', + copyFailed: 'Copy failed', + copyEmpty: 'Nothing to copy', + redetect: 'Re-check', + redetectFailed: 'Re-check failed', + noReason: '(No details)', + aiAnalysis: 'AI analysis', + expandReason: 'Expand', + collapseReason: 'Collapse', + expandChips: 'Show all AI Relevance Assessment Results', + collapseChips: 'Hide AI Relevance Assessment Results', + expandChipsAll: 'Expand all ({n})', + collapseChipsAll: 'Collapse all', + summaryPartial: 'Checking {pending}, {done} done', + summaryPartialDone: ', {done} done', + summaryPartialPending: 'Checking {pending}', + summaryChecking: 'Checking', + pendingCites: '{n} more checking…', filterAll: 'All ({count})', filterModify: 'Needs revision ({count})', columnTitle: 'AI citation relevance review', @@ -1578,6 +1623,7 @@ const en = { uncitedDesc: 'This reference appears in the list but no matching in-text citation was found.', uncitedTip: 'Remove it from the reference list or add an in-text citation in the manuscript.', citationN: 'Cite {n}', + citeInParagraphN: 'Occurrence {n} in paragraph', relevancePct: 'Relevance {score}%', relevancePctShort: '{score}%', viewAiAnalysis: 'View AI analysis →', @@ -1591,7 +1637,7 @@ const en = { locationMatcher: 'Location context matcher', manuscriptSection: 'Manuscript section', highlightedMatch: 'Highlighted match', - excerptEmpty: 'No excerpt available yet.', + excerptEmpty: 'Original cited content not found', annotationComment: 'Comment', annotationDelete: 'Suggest removal', annotationRevision: 'Revision', diff --git a/src/components/common/langs/zh.js b/src/components/common/langs/zh.js index d558ff1..b5c1363 100644 --- a/src/components/common/langs/zh.js +++ b/src/components/common/langs/zh.js @@ -48,6 +48,8 @@ const zh = { plagiarismNotChecked: '未检测', plagiarismChecking: '正在检测…', plagiarismRecheck: '重新查重', + plagiarismRecheckConfirm: '确认要重新发起查重吗?', + plagiarismRecheckCancel: '取消', plagiarismDuplicateCheck: '重复检查', plagiarismCheckFailed: '查重任务启动失败。', plagiarismStatusFailed: '获取查重状态失败。', @@ -60,6 +62,9 @@ const zh = { plagiarismSimilarity: '相似度', plagiarismFile: '文件', plagiarismPreviewPdf: '预览报告', + plagiarismDownloadReport: '下载报告', + plagiarismOnlinePreview: '在线预览', + plagiarismOnlinePreviewFailed: '获取在线预览地址失败。', plagiarismReportLink: '报告', plagiarismNoPdfLink: '无链接', plagiarismPreviewClose: '关闭', @@ -1550,8 +1555,47 @@ const zh = { cancel: '取消' }, refRelevance: { - startDetect: '开始检测相关性', + startDetect: '全量引文相关性核查', + startDetectTip: '一键启动对本篇稿件全部参考文献与正文语境的 AI 一致性核查', + checkComplete: '相关性检测已完成', + detectingAi: '校对中', + auditProgressTitle: '全量引文相关性核查中', + queuePositionLabel: '当前排队位置:', + queuePositionNum: '第 {n} 篇', + queueAheadPrefix: '前方有', + queueAheadSuffix: ' 篇文章参考文献相关性待检测', + progressCount: '{done}/{total}', + progressCountShort: '已完成 {done}', + startFailed: '启动校对失败', + statusFailed: '获取校对状态失败', + progressFailed: '获取检测进度失败', + detailsFailed: '获取 AI 校对详情失败', + detailsEmpty: '暂无 AI 校对详情', + noReferId: '缺少参考文献 ID', + noArticleId: '缺少稿件 ID,无法检测', detecting: '检测中…', + pendingDetect: '待检测', + detectFailed: '检测失败', + notFound: '未找到', + copyInsight: '复制分析', + copySuccess: '已复制', + copyFailed: '复制失败', + copyEmpty: '暂无可复制内容', + redetect: '重新检测', + redetectFailed: '重新检测失败', + noReason: '(暂无说明)', + aiAnalysis: 'AI 分析', + expandReason: '展开', + collapseReason: '收起', + expandChips: '显示全部 AI 相关性评定结果', + collapseChips: '隐藏 AI 相关性评定结果', + expandChipsAll: '展开全部({n})', + collapseChipsAll: '收起全部', + summaryPartial: '正在检测 {pending} 处,已完成 {done} 处', + summaryPartialDone: ',已完成 {done} 处', + summaryPartialPending: '正在检测 {pending} 处', + summaryChecking: '正在检测', + pendingCites: '另有 {n} 处检测中…', filterAll: '全部({count})', filterModify: '需修改({count})', columnTitle: 'AI 智能评定相关性建议', @@ -1559,6 +1603,7 @@ const zh = { uncitedDesc: '该文献已列入参考文献列表,但正文中未找到对应的引用上标。', uncitedTip: '建议:从参考文献列表中删除,或在正文中补充引用。', citationN: '第{n}处', + citeInParagraphN: '本段第{n}处', relevancePct: '相关性 {score}%', relevancePctShort: '{score}%', viewAiAnalysis: '查看 AI 分析 →', @@ -1572,7 +1617,7 @@ const zh = { locationMatcher: '引用位置匹配', manuscriptSection: '稿件段落', highlightedMatch: '高亮匹配', - excerptEmpty: '暂无段落原文,待接口返回', + excerptEmpty: '原引用内容未找到', annotationComment: '批注', annotationDelete: '建议删除', annotationRevision: '修订', diff --git a/src/components/page/PreIngestedEditor.vue b/src/components/page/PreIngestedEditor.vue index 9c07386..ae8ed63 100644 --- a/src/components/page/PreIngestedEditor.vue +++ b/src/components/page/PreIngestedEditor.vue @@ -1343,7 +1343,7 @@ export default { p_article_id: this.p_article_id }) .then((res) => { - this.chanFerForm = res.data.refers; + this.chanFerForm = (res.data.refers || []).slice(); this.chanFerFormRepeatList = Object.values(res.data.repeat); for (var i = 0; i < this.chanFerForm.length; i++) { this.chanFerForm[i].edit_mark = 1; diff --git a/src/components/page/PreIngestedEditorProduce.vue b/src/components/page/PreIngestedEditorProduce.vue index 73c5579..7b556ee 100644 --- a/src/components/page/PreIngestedEditorProduce.vue +++ b/src/components/page/PreIngestedEditorProduce.vue @@ -1439,7 +1439,7 @@ export default { p_article_id: this.p_article_id }) .then((res) => { - this.chanFerForm = res.data.refers; + this.chanFerForm = (res.data.refers || []).slice(); this.chanFerFormRepeatList = Object.values(res.data.repeat); for (var i = 0; i < this.chanFerForm.length; i++) { this.chanFerForm[i].edit_mark = 1; diff --git a/src/components/page/articleDetailEditor.vue b/src/components/page/articleDetailEditor.vue index 2323633..37e5ae9 100644 --- a/src/components/page/articleDetailEditor.vue +++ b/src/components/page/articleDetailEditor.vue @@ -976,27 +976,29 @@ element-loading-background="transparent" >