From 4bb9d1b41629526840794578ecd6719d72481d38 Mon Sep 17 00:00:00 2001 From: clay <20932067@zju.edu.cn> Date: Mon, 10 Oct 2022 21:58:43 +0800 Subject: [PATCH] =?UTF-8?q?clay=20commit=20:=20tinymce=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=99=A8=E9=9B=86=E6=88=90=E5=AE=8C=E6=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ebts-ui/package.json | 2 + ebts-ui/public/index.html | 2 +- ebts-ui/public/tinymce/icons/default/icons.js | 182 ++ .../public/tinymce/icons/default/icons.min.js | 1 + ebts-ui/public/tinymce/icons/default/index.js | 7 + ebts-ui/public/tinymce/langs/zh_CN.js | 389 +++ .../tinymce/skins/content/dark/content.css | 59 + .../skins/content/dark/content.min.css | 8 + .../tinymce/skins/content/default/content.css | 49 + .../skins/content/default/content.min.css | 8 + .../skins/content/document/content.css | 53 + .../skins/content/document/content.min.css | 8 + .../tinymce/skins/content/writer/content.css | 50 + .../skins/content/writer/content.min.css | 8 + .../tinymce/skins/ui/oxide-dark/content.css | 589 ++++ .../skins/ui/oxide-dark/content.inline.css | 615 ++++ .../ui/oxide-dark/content.inline.min.css | 8 + .../skins/ui/oxide-dark/content.min.css | 8 + .../skins/ui/oxide-dark/content.mobile.css | 29 + .../ui/oxide-dark/content.mobile.min.css | 8 + .../ui/oxide-dark/fonts/tinymce-mobile.woff | Bin 0 -> 4624 bytes .../tinymce/skins/ui/oxide-dark/skin.css | 2672 +++++++++++++++++ .../tinymce/skins/ui/oxide-dark/skin.min.css | 8 + .../skins/ui/oxide-dark/skin.mobile.css | 673 +++++ .../skins/ui/oxide-dark/skin.mobile.min.css | 8 + .../public/tinymce/skins/ui/oxide/content.css | 607 ++++ .../tinymce/skins/ui/oxide/content.inline.css | 615 ++++ .../skins/ui/oxide/content.inline.min.css | 8 + .../tinymce/skins/ui/oxide/content.min.css | 8 + .../tinymce/skins/ui/oxide/content.mobile.css | 29 + .../skins/ui/oxide/content.mobile.min.css | 8 + .../skins/ui/oxide/fonts/tinymce-mobile.woff | Bin 0 -> 4624 bytes .../public/tinymce/skins/ui/oxide/skin.css | 2672 +++++++++++++++++ .../tinymce/skins/ui/oxide/skin.min.css | 8 + .../tinymce/skins/ui/oxide/skin.mobile.css | 673 +++++ .../skins/ui/oxide/skin.mobile.min.css | 8 + ebts-ui/src/router/index.js | 13 + .../views/sist/article/components/approve.vue | 5 - .../views/sist/article/components/article.vue | 8 +- .../src/views/sist/navigation/articleEdit.vue | 88 + ebts-ui/src/views/sist/navigation/index.vue | 28 +- ebts-ui/src/views/utils/Editor.vue | 240 -- ebts-ui/src/views/utils/Editor_back.vue | 155 +- ebts-ui/src/views/utils/tinymce/Tinymce.vue | 223 ++ .../utils/tinymce/plugin/indent/plugin.js | 47 + .../utils/tinymce/plugin/indent/plugin.min.js | 47 + .../tinymce/plugin/letterspacing/plugin.js | 54 + .../utils/tinymce/plugin/lineheight/plugin.js | 57 + .../tinymce/plugin/lineheight/plugin.min.js | 57 + 49 files changed, 10817 insertions(+), 285 deletions(-) create mode 100644 ebts-ui/public/tinymce/icons/default/icons.js create mode 100644 ebts-ui/public/tinymce/icons/default/icons.min.js create mode 100644 ebts-ui/public/tinymce/icons/default/index.js create mode 100644 ebts-ui/public/tinymce/langs/zh_CN.js create mode 100644 ebts-ui/public/tinymce/skins/content/dark/content.css create mode 100644 ebts-ui/public/tinymce/skins/content/dark/content.min.css create mode 100644 ebts-ui/public/tinymce/skins/content/default/content.css create mode 100644 ebts-ui/public/tinymce/skins/content/default/content.min.css create mode 100644 ebts-ui/public/tinymce/skins/content/document/content.css create mode 100644 ebts-ui/public/tinymce/skins/content/document/content.min.css create mode 100644 ebts-ui/public/tinymce/skins/content/writer/content.css create mode 100644 ebts-ui/public/tinymce/skins/content/writer/content.min.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide-dark/content.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide-dark/content.inline.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide-dark/content.inline.min.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide-dark/content.min.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide-dark/content.mobile.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide-dark/content.mobile.min.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide-dark/skin.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide-dark/skin.min.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide-dark/skin.mobile.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide-dark/skin.mobile.min.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide/content.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide/content.inline.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide/content.inline.min.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide/content.min.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide/content.mobile.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide/content.mobile.min.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide/skin.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide/skin.min.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide/skin.mobile.css create mode 100644 ebts-ui/public/tinymce/skins/ui/oxide/skin.mobile.min.css create mode 100644 ebts-ui/src/views/sist/navigation/articleEdit.vue delete mode 100644 ebts-ui/src/views/utils/Editor.vue create mode 100644 ebts-ui/src/views/utils/tinymce/Tinymce.vue create mode 100644 ebts-ui/src/views/utils/tinymce/plugin/indent/plugin.js create mode 100644 ebts-ui/src/views/utils/tinymce/plugin/indent/plugin.min.js create mode 100644 ebts-ui/src/views/utils/tinymce/plugin/letterspacing/plugin.js create mode 100644 ebts-ui/src/views/utils/tinymce/plugin/lineheight/plugin.js create mode 100644 ebts-ui/src/views/utils/tinymce/plugin/lineheight/plugin.min.js diff --git a/ebts-ui/package.json b/ebts-ui/package.json index 0a1a4c8..194e687 100644 --- a/ebts-ui/package.json +++ b/ebts-ui/package.json @@ -37,6 +37,8 @@ ], "dependencies": { "@antv/g6": "^4.2.7", + "@tinymce/tinymce-vue": "^3.0.1", + "tinymce": "^5.0.16", "@riophae/vue-treeselect": "0.4.0", "axios": "0.18.1", "ckeditor4-vue": "^1.4.0", diff --git a/ebts-ui/public/index.html b/ebts-ui/public/index.html index 24c7e86..cb08685 100644 --- a/ebts-ui/public/index.html +++ b/ebts-ui/public/index.html @@ -5,7 +5,7 @@ - + 西南交大信息学院官网后台管理系统 diff --git a/ebts-ui/src/views/sist/navigation/index.vue b/ebts-ui/src/views/sist/navigation/index.vue index 4cc97a8..434ce27 100644 --- a/ebts-ui/src/views/sist/navigation/index.vue +++ b/ebts-ui/src/views/sist/navigation/index.vue @@ -72,14 +72,14 @@ size="mini" type="text" icon="el-icon-edit" - @click="handleUpdateDetails(scope.row.refId)" + @click="handleUpdateDetails(scope.row.refId,scope.row.id)" >修改中文详情 修改英文详情 { - this.formData = res.data - }) + handleUpdateDetails(refId,navId) { + this.$router.push('/navigation/edit/' + refId+'/'+navId) + // this.detailsShow = true + // this.formData = { + // id: id, + // title: '', + // content: '' + // } + // getDetails(id).then(res => { + // this.formData = res.data + // }) }, code(){ let html = this.$refs.editor.getHtml() diff --git a/ebts-ui/src/views/utils/Editor.vue b/ebts-ui/src/views/utils/Editor.vue deleted file mode 100644 index 7ba3322..0000000 --- a/ebts-ui/src/views/utils/Editor.vue +++ /dev/null @@ -1,240 +0,0 @@ - - - - - diff --git a/ebts-ui/src/views/utils/Editor_back.vue b/ebts-ui/src/views/utils/Editor_back.vue index cec7451..39c8503 100644 --- a/ebts-ui/src/views/utils/Editor_back.vue +++ b/ebts-ui/src/views/utils/Editor_back.vue @@ -1,11 +1,33 @@ diff --git a/ebts-ui/src/views/utils/tinymce/Tinymce.vue b/ebts-ui/src/views/utils/tinymce/Tinymce.vue new file mode 100644 index 0000000..1892f7b --- /dev/null +++ b/ebts-ui/src/views/utils/tinymce/Tinymce.vue @@ -0,0 +1,223 @@ + + diff --git a/ebts-ui/src/views/utils/tinymce/plugin/indent/plugin.js b/ebts-ui/src/views/utils/tinymce/plugin/indent/plugin.js new file mode 100644 index 0000000..5e8c8db --- /dev/null +++ b/ebts-ui/src/views/utils/tinymce/plugin/indent/plugin.js @@ -0,0 +1,47 @@ +tinymce.PluginManager.add('indent2em', function(editor, url) { + var pluginName='首行缩进'; + var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + var indent2em_val = editor.getParam('indent2em_val', '2em'); + var doAct = function () { + var dom = editor.dom; + var blocks = editor.selection.getSelectedBlocks(); + var act = ''; + global$1.each(blocks, function (block) { + if(act==''){ + act = dom.getStyle(block,'text-indent')==indent2em_val ? 'remove' : 'add'; + } + if( act=='add' ){ + dom.setStyle(block, 'text-indent', indent2em_val); + }else{ + var style=dom.getAttrib(block,'style'); + style = style.replace(/text-indent:[\s]*2em;/ig,''); + dom.setAttrib(block,'style',style); + } + + }); + }; + + editor.ui.registry.addButton('indent2em', { + text: '', + tooltip: pluginName, + onAction: function () { + doAct(); + } + }); + + editor.ui.registry.addMenuItem('indent2em', { + text: pluginName, + onAction: function() { + doAct(); + } + }); + + return { + getMetadata: function () { + return { + name: pluginName, + url: "http://tinymce.ax-z.cn/more-plugins/indent2em.php", + }; + } + }; +}); diff --git a/ebts-ui/src/views/utils/tinymce/plugin/indent/plugin.min.js b/ebts-ui/src/views/utils/tinymce/plugin/indent/plugin.min.js new file mode 100644 index 0000000..5e8c8db --- /dev/null +++ b/ebts-ui/src/views/utils/tinymce/plugin/indent/plugin.min.js @@ -0,0 +1,47 @@ +tinymce.PluginManager.add('indent2em', function(editor, url) { + var pluginName='首行缩进'; + var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + var indent2em_val = editor.getParam('indent2em_val', '2em'); + var doAct = function () { + var dom = editor.dom; + var blocks = editor.selection.getSelectedBlocks(); + var act = ''; + global$1.each(blocks, function (block) { + if(act==''){ + act = dom.getStyle(block,'text-indent')==indent2em_val ? 'remove' : 'add'; + } + if( act=='add' ){ + dom.setStyle(block, 'text-indent', indent2em_val); + }else{ + var style=dom.getAttrib(block,'style'); + style = style.replace(/text-indent:[\s]*2em;/ig,''); + dom.setAttrib(block,'style',style); + } + + }); + }; + + editor.ui.registry.addButton('indent2em', { + text: '', + tooltip: pluginName, + onAction: function () { + doAct(); + } + }); + + editor.ui.registry.addMenuItem('indent2em', { + text: pluginName, + onAction: function() { + doAct(); + } + }); + + return { + getMetadata: function () { + return { + name: pluginName, + url: "http://tinymce.ax-z.cn/more-plugins/indent2em.php", + }; + } + }; +}); diff --git a/ebts-ui/src/views/utils/tinymce/plugin/letterspacing/plugin.js b/ebts-ui/src/views/utils/tinymce/plugin/letterspacing/plugin.js new file mode 100644 index 0000000..8444803 --- /dev/null +++ b/ebts-ui/src/views/utils/tinymce/plugin/letterspacing/plugin.js @@ -0,0 +1,54 @@ +tinymce.PluginManager.add('letterspacing', function (editor, url) { + var pluginName = '字间距' + var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools') + var letterspacing_val = editor.getParam('letterspacing_val', '1px 2px 3px 4px 5px') + + editor.on('init', function () { + editor.formatter.register({ + letterspacing: {inline: 'span', styles: {'letter-spacing': '%value'}} + }) + }) + + var doAct = function (value) { + editor.formatter.apply('letterspacing', {value: value}) + editor.fire('change', {}) + } + + editor.ui.registry.addMenuButton('letterspacing', { + text: '', + tooltip: pluginName, + fetch: function (callback) { + var dom = editor.dom + var blocks = editor.selection.getSelectedBlocks() + var lhv = 0 + global$1.each(blocks, function (block) { + if (lhv == 0) { + lhv = dom.getStyle(block, 'letterspacing') ? dom.getStyle(block, 'letterspacing') : 0 + } + }) + + var items = letterspacing_val.split(' ').map(function (item) { + var text = item + var value = item + return { + type: 'togglemenuitem', + text: text, + active: lhv == value ? true : false, + onAction: function () { + doAct(value) + } + } + }) + callback(items) + } + }) + + return { + getMetadata: function () { + return { + name: pluginName, + url: 'http://tinymce.ax-z.cn/more-plugins/lineheight.php', + } + } + } +}) diff --git a/ebts-ui/src/views/utils/tinymce/plugin/lineheight/plugin.js b/ebts-ui/src/views/utils/tinymce/plugin/lineheight/plugin.js new file mode 100644 index 0000000..c79c787 --- /dev/null +++ b/ebts-ui/src/views/utils/tinymce/plugin/lineheight/plugin.js @@ -0,0 +1,57 @@ +tinymce.PluginManager.add('lineheight', function(editor, url) { + var pluginName='设置行高'; + var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + var lineheight_val = editor.getParam('lineheight_val', '1 1.5 1.6 1.75 1.8 2 3 4 5'); + + editor.on('init', function() { + editor.formatter.register({ + lineheight: { + selector: 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table', + styles: { 'line-height': '%value' } + } + }); + }); + + var doAct = function (value) { + editor.formatter.apply('lineheight', { value: value }); + editor.fire('change', {}); + }; + + editor.ui.registry.addMenuButton('lineheight', { + text: '', + tooltip: pluginName, + fetch: function(callback) { + var dom = editor.dom; + var blocks = editor.selection.getSelectedBlocks(); + var lhv = 0; + global$1.each(blocks, function(block) { + if(lhv==0){ + lhv = dom.getStyle(block,'line-height') ? dom.getStyle(block,'line-height') : 0; + } + }); + + var items = lineheight_val.split(' ').map(function(item){ + var text = item; + var value = item; + return { + type: 'togglemenuitem', + text: text, + active : lhv==value ? true :false, + onAction: function() { + doAct(value); + } + }; + }); + callback(items); + } + }); + + return { + getMetadata: function () { + return { + name: pluginName, + url: "http://tinymce.ax-z.cn/more-plugins/lineheight.php", + }; + } + }; +}); diff --git a/ebts-ui/src/views/utils/tinymce/plugin/lineheight/plugin.min.js b/ebts-ui/src/views/utils/tinymce/plugin/lineheight/plugin.min.js new file mode 100644 index 0000000..c79c787 --- /dev/null +++ b/ebts-ui/src/views/utils/tinymce/plugin/lineheight/plugin.min.js @@ -0,0 +1,57 @@ +tinymce.PluginManager.add('lineheight', function(editor, url) { + var pluginName='设置行高'; + var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + var lineheight_val = editor.getParam('lineheight_val', '1 1.5 1.6 1.75 1.8 2 3 4 5'); + + editor.on('init', function() { + editor.formatter.register({ + lineheight: { + selector: 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table', + styles: { 'line-height': '%value' } + } + }); + }); + + var doAct = function (value) { + editor.formatter.apply('lineheight', { value: value }); + editor.fire('change', {}); + }; + + editor.ui.registry.addMenuButton('lineheight', { + text: '', + tooltip: pluginName, + fetch: function(callback) { + var dom = editor.dom; + var blocks = editor.selection.getSelectedBlocks(); + var lhv = 0; + global$1.each(blocks, function(block) { + if(lhv==0){ + lhv = dom.getStyle(block,'line-height') ? dom.getStyle(block,'line-height') : 0; + } + }); + + var items = lineheight_val.split(' ').map(function(item){ + var text = item; + var value = item; + return { + type: 'togglemenuitem', + text: text, + active : lhv==value ? true :false, + onAction: function() { + doAct(value); + } + }; + }); + callback(items); + } + }); + + return { + getMetadata: function () { + return { + name: pluginName, + url: "http://tinymce.ax-z.cn/more-plugins/lineheight.php", + }; + } + }; +});