|
|
@@ -32,11 +32,93 @@ import 'tinymce/skins/ui/oxide/skin.css';
|
|
|
import 'tinymce/icons/default/index';
|
|
|
|
|
|
export default {
|
|
|
- props: ['value', 'disabled'],
|
|
|
- created() {},
|
|
|
+ props: {
|
|
|
+ value: {
|
|
|
+ type: String,
|
|
|
+ default: ''
|
|
|
+ },
|
|
|
+ disabled: {
|
|
|
+ type: Boolean,
|
|
|
+ default: false
|
|
|
+ },
|
|
|
+ onlyText: {
|
|
|
+ type: Boolean,
|
|
|
+ default: false
|
|
|
+ }
|
|
|
+ },
|
|
|
data() {
|
|
|
return {
|
|
|
- init: {
|
|
|
+ editor: null,
|
|
|
+ content: ''
|
|
|
+ };
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ init() {
|
|
|
+ if (this.onlyText) {
|
|
|
+ return {
|
|
|
+ language: 'zh_CN',
|
|
|
+ theme: 'silver',
|
|
|
+ skin: 'oxide',
|
|
|
+ menubar: false,
|
|
|
+ branding: false,
|
|
|
+ statusbar: false,
|
|
|
+ height: 400,
|
|
|
+ toolbar:
|
|
|
+ 'undo redo | styleselect bold italic strikethrough forecolor backcolor | formatselect | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat | preview fullscreen code help',
|
|
|
+ plugins: [
|
|
|
+ 'advlist autolink lists link image charmap print preview anchor textcolor',
|
|
|
+ 'searchreplace visualblocks code fullscreen',
|
|
|
+ 'insertdatetime media table contextmenu paste code help imagetools'
|
|
|
+ ],
|
|
|
+ images_upload_url: this.$baseUrl + '/upload/file',
|
|
|
+ images_upload_handler: (blobInfo, success, failure) => {
|
|
|
+ let formData = new FormData();
|
|
|
+ formData.append('file', blobInfo.blob(), blobInfo.filename());
|
|
|
+ this.$axios
|
|
|
+ .post('/upload/file', formData)
|
|
|
+ .then(res => {
|
|
|
+ success(res.data);
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ failure(e);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ init_instance_callback: editor => {
|
|
|
+ this.editor = editor;
|
|
|
+ },
|
|
|
+ file_picker_types: 'media',
|
|
|
+ relative_urls: false,
|
|
|
+ remove_script_host: false,
|
|
|
+ convert_urls: true,
|
|
|
+ file_picker_callback: (cb, value, meta) => {
|
|
|
+ var input = document.createElement('input');
|
|
|
+ input.setAttribute('type', 'file');
|
|
|
+ input.setAttribute('accept', 'video/*');
|
|
|
+ input.onchange = e => {
|
|
|
+ var file = input.files[0];
|
|
|
+
|
|
|
+ var reader = new FileReader();
|
|
|
+ reader.readAsDataURL(file);
|
|
|
+ reader.onload = () => {
|
|
|
+ let formData = new FormData();
|
|
|
+ formData.append('file', file);
|
|
|
+ this.$axios
|
|
|
+ .post('/upload/file', formData)
|
|
|
+ .then(res => {
|
|
|
+ cb(res.data);
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ console.log(e);
|
|
|
+ });
|
|
|
+ };
|
|
|
+ };
|
|
|
+
|
|
|
+ input.click();
|
|
|
+ }
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ return {
|
|
|
language: 'zh_CN',
|
|
|
theme: 'silver',
|
|
|
skin: 'oxide',
|
|
|
@@ -96,10 +178,8 @@ export default {
|
|
|
|
|
|
input.click();
|
|
|
}
|
|
|
- },
|
|
|
- editor: null,
|
|
|
- content: ''
|
|
|
- };
|
|
|
+ };
|
|
|
+ }
|
|
|
},
|
|
|
methods: {
|
|
|
onInput(val) {
|