diff --git a/src/assets/styles/form/home.scss b/src/assets/styles/form/home.scss index ecddcca..01f3ef0 100644 --- a/src/assets/styles/form/home.scss +++ b/src/assets/styles/form/home.scss @@ -254,7 +254,6 @@ $lighterBlue: #4aa0fa; } } .form-name-text:hover { - text-align: center; border: 1px dashed #7b7b7b; } .form-name-text { diff --git a/src/components/tinymce/config.js b/src/components/tinymce/config.js index 296b7ef..f7d9af8 100644 --- a/src/components/tinymce/config.js +++ b/src/components/tinymce/config.js @@ -4,5 +4,5 @@ export const plugins = [ ' autoresize advlist anchor autolink autosave code codesample directionality emoticons fullscreen hr image imagetools insertdatetime link lists media nonbreaking noneditable pagebreak paste preview print save searchreplace spellchecker tabfocus table template textpattern visualblocks visualchars ' ] export const toolbar = [ - ' styleselect bold italic underline strikethrough undo redo blockquote removeformat subscript superscript hr bullist numlist link image charmap preview pagebreak insertdatetime media table emoticons forecolor backcolor fullscreen ' + ' styleselect bold italic underline strikethrough undo redo blockquote removeformat alignleft aligncenter alignright subscript superscript hr bullist numlist link image charmap preview pagebreak insertdatetime media table emoticons forecolor backcolor fullscreen ' ] diff --git a/src/components/tinymce/index.vue b/src/components/tinymce/index.vue index d315bf2..aac036b 100644 --- a/src/components/tinymce/index.vue +++ b/src/components/tinymce/index.vue @@ -6,6 +6,7 @@ import loadTinymce from '@/utils/loadTinymce' import {plugins, toolbar} from './config' import {debounce} from 'throttle-debounce' +import constants from '@/utils/constants' let num = 1 @@ -29,7 +30,10 @@ export default { } }, mounted() { + loadTinymce(tinymce => { + let token= this.getUserToken(); + let uploadUrl= constants.userUploadUrl // eslint-disable-next-line global-require require('./zh_CN') let conf = { @@ -55,7 +59,31 @@ export default { default_link_target: '_blank', link_title: false, statusbar: false, - nonbreaking_force_tab: true + nonbreaking_force_tab: true, + images_upload_handler: function (blobInfo, succFun, failFun) { + var xhr, formData; + var file = blobInfo.blob();//转化为易于理解的file对象 + xhr = new XMLHttpRequest(); + xhr.withCredentials = false; + xhr.open('POST', uploadUrl); + xhr.setRequestHeader("token", token); + xhr.onload = function() { + var json; + if (xhr.status != 200) { + failFun('HTTP Error: ' + xhr.status); + return; + } + json = JSON.parse(xhr.responseText); + if (!json || typeof json.data != 'string') { + failFun('Invalid JSON: ' + xhr.responseText); + return; + } + succFun(json.data); + }; + formData = new FormData(); + formData.append('file', file, file.name );//此处与源文档不一样 + xhr.send(formData); + } } conf = Object.assign(conf, this.$attrs) conf.init_instance_callback = editor => { @@ -86,6 +114,9 @@ export default { this.$emit('blur') }) }, + getUserToken() { + return this.$store.getters['user/isLogin'] + }, destroyTinymce() { if (!window.tinymce) return const tinymce = window.tinymce.get(this.tinymceId) diff --git a/src/utils/constants.js b/src/utils/constants.js index f319b9f..6dc092b 100644 --- a/src/utils/constants.js +++ b/src/utils/constants.js @@ -3,5 +3,6 @@ export default { signSecret: '916lWh2WMcbSWiHv', //密码正则 passwordReg: /^.{6,}$/, - passwordRegDesc: '密码最少为6位字符' + passwordRegDesc: '密码最少为6位字符', + userUploadUrl: `${process.env.VUE_APP_API_ROOT}/user/file/upload` } diff --git a/src/views/form/ProjectForm.vue b/src/views/form/ProjectForm.vue index 6f53cd1..ae8fbe7 100644 --- a/src/views/form/ProjectForm.vue +++ b/src/views/form/ProjectForm.vue @@ -15,9 +15,10 @@
- {{ formConf.description }} -
+