From 262e634f852a66a16cf0543b0f56b677b4f663ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=8B=E4=BA=8E=E5=88=9D=E8=A7=81?= <752204717@qq.com> Date: Mon, 6 Jul 2026 09:11:20 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=88=E5=AE=A1=E7=BC=96=E5=A7=94=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/test-footer.cjs | 23 + src/assets/img/tmr-logo.png | Bin 0 -> 26600 bytes src/components/common/langs/en.js | 29 +- src/components/common/langs/zh.js | 29 +- src/components/page/GenerateCharts.vue | 107 ++ src/components/page/articleAdd.vue | 110 +- src/components/page/articleEditorialBoard.vue | 83 +- .../page/components/table/catalogue.vue | 47 +- .../page/components/table/content.vue | 38 + src/components/page/components/table/word.vue | 14 +- .../components/table/wordHtmlTypesetting.vue | 81 +- src/components/page/mailboxSend.vue | 1017 +++++++++- src/components/page/youthApplyList.vue | 160 +- src/utils/convertNumericSuperscriptsToBlue.js | 113 ++ src/utils/exportFigureWord.js | 408 +++- src/utils/exportManuscriptAuthor.js | 279 ++- src/utils/exportManuscriptWord.js | 1644 ++++++++++++++--- src/utils/exportManuscriptWordFooter.js | 546 ++++++ src/utils/exportManuscriptWordHeader.js | 637 +++++++ src/utils/exportTableWord.js | 164 +- src/utils/exportWordLayout.js | 49 +- src/utils/mailTemplatePreview.js | 160 +- src/utils/moveBlueCitationsBeforePeriod.js | 229 +++ src/utils/stripHeadingNumber.js | 81 + 24 files changed, 5529 insertions(+), 519 deletions(-) create mode 100644 scripts/test-footer.cjs create mode 100644 src/assets/img/tmr-logo.png create mode 100644 src/utils/convertNumericSuperscriptsToBlue.js create mode 100644 src/utils/exportManuscriptWordFooter.js create mode 100644 src/utils/exportManuscriptWordHeader.js create mode 100644 src/utils/moveBlueCitationsBeforePeriod.js create mode 100644 src/utils/stripHeadingNumber.js diff --git a/scripts/test-footer.cjs b/scripts/test-footer.cjs new file mode 100644 index 0000000..43f6bcf --- /dev/null +++ b/scripts/test-footer.cjs @@ -0,0 +1,23 @@ +const { Document, Packer } = require('docx'); +const JSZip = require('jszip'); +const { buildManuscriptPageFooter, patchManuscriptPageFootersToXml } = require('../src/utils/exportManuscriptWordFooter.js'); + +(async function () { + const footer = buildManuscriptPageFooter({ + journal: { website: 'https://www.tmrjournals.com/bmec' } + }); + const doc = new Document({ + sections: [ + { + properties: {}, + footers: { default: footer }, + children: [] + } + ] + }); + const buf = await Packer.toBuffer(doc); + let xml = await (await JSZip.loadAsync(buf)).file('word/footer1.xml').async('string'); + console.log('BEFORE PATCH\n', xml); + xml = patchManuscriptPageFootersToXml(xml); + console.log('AFTER PATCH\n', xml); +})(); diff --git a/src/assets/img/tmr-logo.png b/src/assets/img/tmr-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..665b7dbc051ff59d59c37da56a23cf4500bfcd1b GIT binary patch literal 26600 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 @@ -425,6 +427,22 @@ + + 上标转引用 + + + 引用挪到句号前 + Cancel @@ -447,6 +465,7 @@ import Tinymce from '@/components/page/components/Tinymce'; import bottomTinymce from '@/components/page/components/Tinymce'; import catalogue from '@/components/page/components/table/catalogue.vue'; import { isZyModeEnabled } from '@/utils/zyMode'; +import { collectHeadingNumberStripUpdates } from '@/utils/stripHeadingNumber'; export default { data() { return { @@ -466,6 +485,7 @@ export default { currentId: null, ManuscirptContent: [], mathFormulasList: [], + strippingHeadingNumbers: false, articleId: this.$route.query.id, pArticleId: this.$route.query.p_article_id || '', isShowComment: false, @@ -701,6 +721,34 @@ export default { handleSaveAddContent() { this.$refs.addContent.getTinymceContent('addcontent'); }, + /** 临时:Add Content 内数字上标 → blue 引用标签 */ + handleConvertAddContentSupToBlue() { + const ref = this.$refs.addContent; + if (!ref || typeof ref.convertNumericSuperscriptsToBlue !== 'function') { + this.$message.warning('编辑器未就绪'); + return; + } + const count = ref.convertNumericSuperscriptsToBlue(); + if (count > 0) { + this.$message.success('已转换 ' + count + ' 处数字上标为 blue 引用'); + } else { + this.$message.info('未找到可转换的数字上标(需为上标且内容仅为数字、逗号或连字符)'); + } + }, + /** 临时:Add Content 内 blue 引用挪到句号前 */ + handleMoveAddContentCitationBeforePeriod() { + const ref = this.$refs.addContent; + if (!ref || typeof ref.moveBlueCitationsBeforePeriod !== 'function') { + this.$message.warning('编辑器未就绪'); + return; + } + const count = ref.moveBlueCitationsBeforePeriod(); + if (count > 0) { + this.$message.success('已调整 ' + count + ' 处参考文献位置'); + } else { + this.$message.info('未找到需要调整的 blue 参考文献(句号已在引用之后则不会重复处理)'); + } + }, handleSaveEditProofreadingContent() { this.$refs.addContent.getTinymceContent('addcontent'); }, @@ -991,6 +1039,65 @@ export default { this.$refs.commonWord.goToComment(mainId); }); }, + async stripHeadingNumbersFromOutline(updates) { + const list = updates && updates.length ? updates : collectHeadingNumberStripUpdates(this.Main_List); + if (!list.length) { + this.$message.info('No heading numbers found to remove.'); + return; + } + + try { + await this.$confirm( + 'Remove numbering from ' + list.length + ' heading(s)? (e.g. "1 Introduction" → "Introduction")', + 'Remove Heading Numbers', + { + confirmButtonText: 'Remove', + cancelButtonText: 'Cancel', + type: 'warning' + } + ); + } catch (e) { + return; + } + + this.strippingHeadingNumbers = true; + const loading = this.$loading({ + lock: true, + text: 'Removing heading numbers...', + spinner: 'el-icon-loading', + background: 'rgba(0, 0, 0, 0.7)' + }); + + let successCount = 0; + try { + for (let i = 0; i < list.length; i++) { + const item = list[i]; + let str = String(item.content || '') + .replace(/^

\s*(.*?)\s*<\/p>$/, '$1') + .trim(); + str = str.replace(//gi, ''); + str = await this.$commonJS.decodeHtml(str); + + const res = await this.$api.post(this.urlList.editContent, { + am_id: item.am_id, + content: str + }); + if (res && res.code == 0) { + successCount++; + await this.refreshCurrentContent('content', item.am_id, res.data); + } else { + throw new Error((res && res.msg) || 'Save failed'); + } + } + this.$message.success('Removed numbering from ' + successCount + ' heading(s).'); + } catch (err) { + console.error(err); + this.$message.error((err && err.message) || 'Failed to remove heading numbers.'); + } finally { + loading.close(); + this.strippingHeadingNumbers = false; + } + }, getTables(tables, html) { this.tables = data.map((e, i) => ({ ...e, p_main_table_id: 2141 + i, p_article_id: 2141 })); this.tablesHtml = html; diff --git a/src/components/page/articleAdd.vue b/src/components/page/articleAdd.vue index 543a0f1..5154e07 100644 --- a/src/components/page/articleAdd.vue +++ b/src/components/page/articleAdd.vue @@ -74,29 +74,46 @@ - -

- Upload +
+ +
+ Upload +
+
+ Only Word and compressed files can be uploaded (file format: .docx). +
+
+
+ +

+ Kindly prepare and submit your manuscript in DOCX format using our + + official template + . + Compliance with the template requirements allows us to process your submission more + efficiently and refine the article’s final typesetting to a higher standard. +

-
- Only Word and compressed files can be uploaded (file format: .docx). -
- +
@@ -4365,6 +4382,55 @@ export default { font-size: 13px; } +.manuscript-upload-wrap { + position: relative; + min-height: 32px; +} + +.manuscript-template-notice { + display: flex; + align-items: flex-start; + gap: 8px; + margin-top: 12px; + + padding: 10px 12px; + background: #f5f9fb; + border: 1px solid #e3eef3; + border-left: 3px solid #006699; + border-radius: 4px; +} + +.manuscript-template-notice__icon { + flex-shrink: 0; + margin-top: 2px; + color: #006699; + font-size: 16px; +} + +.manuscript-template-notice p { + margin: 0; + font-size: 13px; + line-height: 1.65; + color: #555; +} + +.template-download-link { + color: #006699; + font-weight: 600; + text-decoration: none; + cursor: pointer; + white-space: nowrap; +} + +.template-download-link:hover { + text-decoration: underline; +} + +.template-download-link .el-icon-download { + font-weight: bold; + margin-right: 2px; +} + .el-collapse-item__content { padding-bottom: 8px !important; } diff --git a/src/components/page/articleEditorialBoard.vue b/src/components/page/articleEditorialBoard.vue index 9ab0578..75b6108 100644 --- a/src/components/page/articleEditorialBoard.vue +++ b/src/components/page/articleEditorialBoard.vue @@ -154,23 +154,40 @@ > - + - + + + + +