1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
| <template>
| <div style="border: 1px solid #ccc;">
| <Toolbar
| style="border-bottom: 1px solid #ccc"
| :editor="editor"
| :defaultConfig="toolbarConfig"
| :mode="mode"
| />
| <Editor
| style="height:300px; overflow-y: hidden;"
| v-model="html"
| :defaultConfig="editorConfig"
| :mode="mode"
| @onCreated="onCreated"
| @onChange="onChange"
| />
| </div>
| </template>
|
| <script>
| import Vue from "vue";
| import { Editor, Toolbar } from "@wangeditor/editor-for-vue";
|
| export default Vue.extend({
| components: { Editor, Toolbar },
| data() {
| return {
| editor: null,
| html: "<p></p>",
| toolbarConfig: {},
| editorConfig: { placeholder: "请输入内容...", MENU_CONF: {} },
| mode: "default", // or 'simple'
| };
| },
| methods: {
| onCreated(editor) {
| this.editor = Object.seal(editor); // 一定要用 Object.seal() ,否则会报错
| },
| onChange(editor) {
| console.log("onChange", editor.children);
| },
| },
| mounted() {
| this.editorConfig.MENU_CONF["uploadImage"] = {
| // 上传地址
| server: "",
| // form-data fieldName ,默认值 'wangeditor-uploaded-image'
| fieldName: "your-custom-name",
|
| // 单个文件的最大体积限制,默认为 2M
| maxFileSize: 1 * 1024 * 1024, // 1M
|
| // 最多可上传几个文件,默认为 100
| maxNumberOfFiles: 10,
|
| // 选择文件时的类型限制,默认为 ['image/*'] 。如不想限制,则设置为 []
| allowedFileTypes: ["image/*"],
|
| // 自定义上传参数,例如传递验证的 token 等。参数会被添加到 formData 中,一起上传到服务端。
| meta: {
| token: "xxx",
| otherKey: "yyy",
| },
|
| // 将 meta 拼接到 url 参数中,默认 false
| metaWithUrl: false,
|
| // 自定义增加 http header
| headers: {
| Accept: "text/x-json",
| otherKey: "xxx",
| },
| // 跨域是否传递 cookie ,默认为 false
| withCredentials: true,
|
| // 超时时间,默认为 10 秒
| timeout: 5 * 1000, // 5 秒
| // 上传之前触发
| onBeforeUpload(file) {
| // file 选中的文件,格式如 { key }
| return file;
|
| // 可以 return
| // 1. return file 或者 new 一个 file ,接下来将上传
| // 2. return false ,不上传这个 file
| },
| // 上传进度的回调函数
| onProgress(progress) {
| // progress 是 0-100 的数字
| console.log("progress", progress);
| },
| // 单个文件上传成功之后
| onSuccess(file, res) {
| console.log(`${file.name} 上传成功`, res);
| },
| // 单个文件上传失败
| onFailed(file, res) {
| console.log(`${file.name} 上传失败`, res);
| },
| // 上传错误,或者触发 timeout 超时
| onError(file, err, res) {
| console.log(`${file.name} 上传出错`, err, res);
| },
| };
| },
| beforeDestroy() {
| const editor = this.editor;
| if (editor == null) return;
| editor.destroy(); // 组件销毁时,及时销毁编辑器
| },
| });
| </script>
|
| <style src="@wangeditor/editor/dist/css/style.css"></style>
|
|