From 0f3ee631e36b8f0ee16458b68333066e429025bd 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: Wed, 7 Jan 2026 09:17:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=95=E7=A8=BF=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/js/commonJS.js | 101 ++++++------ src/components/common/Redirect.vue | 21 +++ src/components/common/Tags.vue | 11 +- src/components/page/articleAdd.vue | 241 +++++++++++++++++++++++----- src/components/page/articleList.vue | 4 +- src/router/index.js | 6 + 6 files changed, 290 insertions(+), 94 deletions(-) create mode 100644 src/components/common/Redirect.vue diff --git a/src/common/js/commonJS.js b/src/common/js/commonJS.js index f1bc642..c3d5abe 100644 --- a/src/common/js/commonJS.js +++ b/src/common/js/commonJS.js @@ -73,15 +73,15 @@ export default { getJournalTypeName(value) { - + var list = JSON.parse(localStorage.getItem('journalTypeDataAll')); - if(list&&list.length>0){ - const type = list.find(item => item.value === value); - return type ? type.name : 'OTHERS'; - }else{ + if (list && list.length > 0) { + const type = list.find(item => item.value === value); + return type ? type.name : 'OTHERS'; + } else { return '' } - + }, @@ -119,7 +119,7 @@ export default { - + extractLatexFromMathJax() { @@ -245,7 +245,7 @@ export default { const content = match.slice(1, match.length - 1); // 去掉方括号 // 这个需要程序去判断所以需要告诉我满足哪些条件的标蓝 // 上标中 只有 * # & 纯数字 纯数字逗号 纯数字逗号和空格 ỻ 标蓝 - + // 判断是否符合条件,纯数字、逗号后有空格、连字符 if (/^\d+$/.test(content) || /, ?/.test(content) || /–/.test(content)) { return `${match}`; // 如果符合条件则加上蓝色标签 @@ -412,10 +412,10 @@ export default { if (!vMergeVal || vMergeVal === "continue") { if (rowspan < maxRowspan) { // 限制 rowspan 最大值 rowspan++; - + nextRowIdx++; } else { - + break; } } else if (vMergeVal === "restart") { @@ -556,10 +556,8 @@ export default { const target = rel.getAttribute('Target'); rels[id] = target; }); - const imageInfoMap = {}; const blips = docDom.getElementsByTagName('a:blip'); - Array.from(blips).forEach((blip) => { const embedId = blip.getAttribute('r:embed'); const extent = findExtentElement(blip); @@ -573,7 +571,6 @@ export default { } } }); - mammoth.convertToHtml({ arrayBuffer }, { convertImage: mammoth.images.inline(async function (image) { console.log('image at line 163:', image) @@ -1204,9 +1201,9 @@ export default { // 遍历行 table.forEach((row) => { tableHtml += ``; -if(row&&row.length>0){ - row.forEach((cell) => { - tableHtml += ` + if (row && row.length > 0) { + row.forEach((cell) => { + tableHtml += ` 0){ ${cell.text} `; - }); -}else{ - tableHtml+=`` -} + }); + } else { + tableHtml += `` + } // 遍历单元格 - + tableHtml += ``; }); @@ -2111,41 +2108,41 @@ if(row&&row.length>0){ - + // 全部大写按钮(按钮文本:A) -ed.ui.registry.addButton('myuppercase', { - text: 'A', // 按钮文本(大写标识) - onAction: function () { - // 获取选中的文本(保留 HTML 格式,确保空格等内容不丢失) - var selectedText = ed.selection.getContent({ format: 'html' }); + ed.ui.registry.addButton('myuppercase', { + text: 'A', // 按钮文本(大写标识) + onAction: function () { + // 获取选中的文本(保留 HTML 格式,确保空格等内容不丢失) + var selectedText = ed.selection.getContent({ format: 'html' }); - // 校验:非空且仅含字母、数字、空格(可根据需求调整正则) - // if (selectedText.trim() && /^[\s\w]+$/.test(selectedText)) { - // 直接将选中的所有内容转为大写(无需正则,整体转换) - var allUppercaseText = selectedText.toUpperCase(); - // 替换选中的文本 - ed.selection.setContent(allUppercaseText); - // } else { - // vueInstance.$message.error(vueInstance.$t('commonTable.selectWord')); - // } - } -}); + // 校验:非空且仅含字母、数字、空格(可根据需求调整正则) + // if (selectedText.trim() && /^[\s\w]+$/.test(selectedText)) { + // 直接将选中的所有内容转为大写(无需正则,整体转换) + var allUppercaseText = selectedText.toUpperCase(); + // 替换选中的文本 + ed.selection.setContent(allUppercaseText); + // } else { + // vueInstance.$message.error(vueInstance.$t('commonTable.selectWord')); + // } + } + }); -// 全部小写按钮(按钮文本:a) -ed.ui.registry.addButton('myuppercasea', { - text: 'a', // 按钮文本(小写标识) - onAction: function () { - var selectedText = ed.selection.getContent({ format: 'html' }); + // 全部小写按钮(按钮文本:a) + ed.ui.registry.addButton('myuppercasea', { + text: 'a', // 按钮文本(小写标识) + onAction: function () { + var selectedText = ed.selection.getContent({ format: 'html' }); - // if (selectedText.trim() && /^[\s\w]+$/.test(selectedText)) { - // 直接将选中的所有内容转为小写(整体转换) - var allLowercaseText = selectedText.toLowerCase(); - ed.selection.setContent(allLowercaseText); - // } else { - // vueInstance.$message.error(vueInstance.$t('commonTable.selectWord')); - // } - } -}); + // if (selectedText.trim() && /^[\s\w]+$/.test(selectedText)) { + // 直接将选中的所有内容转为小写(整体转换) + var allLowercaseText = selectedText.toLowerCase(); + ed.selection.setContent(allLowercaseText); + // } else { + // vueInstance.$message.error(vueInstance.$t('commonTable.selectWord')); + // } + } + }); ed.ui.registry.addButton('Line', { text: '–', // 按钮文本 onAction: function () { diff --git a/src/components/common/Redirect.vue b/src/components/common/Redirect.vue new file mode 100644 index 0000000..5af66d5 --- /dev/null +++ b/src/components/common/Redirect.vue @@ -0,0 +1,21 @@ + + + \ No newline at end of file diff --git a/src/components/common/Tags.vue b/src/components/common/Tags.vue index 7150c40..43e64b3 100644 --- a/src/components/common/Tags.vue +++ b/src/components/common/Tags.vue @@ -65,6 +65,9 @@ if(this.tagsList.length >= 8){ this.tagsList.shift(); } + if(route.meta.hideInTags){ + return false; + } this.tagsList.push({ title: route.meta.title, path: route.fullPath, @@ -90,7 +93,9 @@ created(){ this.setTags(this.$route); // 监听关闭当前页面的标签页 + bus.$on('close_current_tags', () => { + console.log('出发关闭当前标签页'); for (let i = 0, len = this.tagsList.length; i < len; i++) { const item = this.tagsList[i]; if(item.path === this.$route.fullPath){ @@ -106,7 +111,11 @@ } } }) - } + }, +// beforeDestroy() { +// // 销毁监听,防止内存泄漏 +// this.$bus.$off('close_current_tags'); +// } } diff --git a/src/components/page/articleAdd.vue b/src/components/page/articleAdd.vue index 283d8a3..cfe264a 100644 --- a/src/components/page/articleAdd.vue +++ b/src/components/page/articleAdd.vue @@ -1067,6 +1067,7 @@