zydx-plus 1.8.31 → 1.10.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zydx-plus",
3
- "version": "1.8.31",
3
+ "version": "1.10.32",
4
4
  "description": "Vue.js",
5
5
  "main": "src/index.js",
6
6
  "files": [
@@ -19,11 +19,17 @@
19
19
  ],
20
20
  "license": "MIT",
21
21
  "author": "",
22
- "peerDependencies": {
23
- "vue": "^3.2.13",
22
+ "dependencies": {
24
23
  "vue-draggable-next": "^2.1.1",
25
24
  "pdfjs-dist": "^2.0.943",
26
- "flipbook-vue": "^1.0.0-beta.4"
25
+ "flipbook-vue": "^1.0.0-beta.4",
26
+ "@wangeditor/editor": "^5.1.23",
27
+ "wangeditor5-for-vue3": "^1.0.0",
28
+ "@wangeditor/plugin-upload-attachment": "^1.1.0",
29
+ "snabbdom": "^3.5.1"
30
+ },
31
+ "peerDependencies": {
32
+ "vue": "^3.2.13"
27
33
  },
28
34
  "devDependencies": {
29
35
  "@vue/component-compiler-utils": "^2.6.0",
@@ -0,0 +1,6 @@
1
+ import main from './src/editor';
2
+
3
+ main.install = function(Vue) {
4
+ Vue.component(main.name, main);
5
+ };
6
+ export default main;
@@ -0,0 +1,133 @@
1
+ <template>
2
+ <we-toolbar v-if="!readOnly && toolbar.length > 0" class="toolbar" :handle="handle" />
3
+ <we-editable class="editable" :style="{'min-height': height + 'px'}" :handle="handle" v-model:html="formData.html" />
4
+ <div class="but">
5
+ <button class="def-but" @click="confirm">完成</button>
6
+ </div>
7
+ </template>
8
+ <script>
9
+ import '@wangeditor/editor/dist/css/style.css'
10
+ import { defineComponent, shallowReactive } from 'vue'
11
+ import { Boot } from '@wangeditor/editor'
12
+ import attachmentModule from '@wangeditor/plugin-upload-attachment'
13
+ import { menuModule } from './menu'
14
+ import { nodeModule } from './node'
15
+ import { useWangEditor,WeEditable, WeToolbar } from 'wangeditor5-for-vue3'
16
+ Boot.registerModule(attachmentModule)
17
+ Boot.registerModule(nodeModule)
18
+ Boot.registerModule(menuModule)
19
+
20
+ export default defineComponent({
21
+ name: 'zydx-editor',
22
+ components: { WeEditable, WeToolbar },
23
+ props: {
24
+ height: {
25
+ type: String,
26
+ default: '800'
27
+ },
28
+ placeholder: {
29
+ type: String,
30
+ default: '请开始你的表演'
31
+ },
32
+ html: {
33
+ type: String,
34
+ default: ''
35
+ },
36
+ readOnly: {
37
+ type: Boolean,
38
+ default: true
39
+ },
40
+ toolbar: {
41
+ type: Array,
42
+ default: []
43
+ },
44
+ uploadImage: {
45
+ type: Object,
46
+ default: {}
47
+ },
48
+ uploadAttachment: {
49
+ type: Object,
50
+ default: {}
51
+ }
52
+ },
53
+ emits: ['confirm'],
54
+ methods: {
55
+ confirm() {
56
+ this.syncContent() //强制同步数据
57
+ this.$emit('confirm', this.formData.html)
58
+ },
59
+ },
60
+ mounted() {
61
+ setTimeout(() => {
62
+ this.formData.html = this.html
63
+ },0)
64
+ },
65
+ setup(props) {
66
+ const { opts, handle, instance, clearContent, syncContent, reloadEditor } = useWangEditor({
67
+ // 防抖时长。当会触发重载的配置项发生变化 365ms 后,编辑器会重载
68
+ reloadDelary: 365,
69
+ // 菜单栏配置
70
+ toolbar: {
71
+ mode: 'simple', // 指定简介模式
72
+ config:{
73
+ toolbarKeys: props.toolbar
74
+ }
75
+ },
76
+ // 编辑器配置
77
+ editable: {
78
+ config: {
79
+ placeholder: props.placeholder,
80
+ readOnly: props.readOnly,
81
+ autoFocus: false,
82
+ MENU_CONF: {
83
+ // 上传图片
84
+ uploadImage: props.uploadImage,
85
+ uploadAttachment: props.uploadAttachment
86
+ }
87
+ // hoverbarKeys: {
88
+ // attachment: {
89
+ // menuKeys: ['menu4'],
90
+ // },
91
+ // },
92
+ }
93
+ }
94
+ })
95
+ // 不要使用 reactive/ref,应该使用 shallowReactive/shallowRef 来接收 json array 数据
96
+ const formData = shallowReactive({html: ''})
97
+
98
+ return { handle, formData, syncContent }
99
+ }
100
+ })
101
+ </script>
102
+
103
+ <style scoped>
104
+ .but{
105
+ text-align: right;
106
+ }
107
+ /*工具栏样式*/
108
+ .toolbar{
109
+ border: 1px solid #d9d9d9;
110
+ margin-bottom: 20px;
111
+ }
112
+ /*工具栏剧中显示*/
113
+ .w-e-toolbar {
114
+ justify-content: center !important;
115
+ }
116
+ /*编辑器样式*/
117
+ .editable{
118
+ width: 100%;
119
+ background-color: #fff;
120
+ border: 1px solid #e8e8e8;
121
+ margin-bottom: 20px;
122
+ }
123
+ .def-but{
124
+ margin-left: 5px;
125
+ font-size: 12px;
126
+ background-color: transparent;
127
+ border: 1px solid #000;
128
+ border-radius: 3px;
129
+ padding: 2px 5px;
130
+ cursor: pointer;
131
+ min-width: 60px;
132
+ }
133
+ </style>
@@ -0,0 +1,120 @@
1
+
2
+ class signButtonMenu {
3
+ constructor() {
4
+ this.title = '添加标志' // 自定义菜单标题
5
+ // this.iconSvg = '<svg>...</svg>' // 可选
6
+ this.tag = 'button'
7
+ }
8
+ // 获取菜单执行时的 value ,用不到则返回空 字符串或 false
9
+ getValue(editor) {
10
+ return false
11
+ }
12
+ // 菜单是否需要激活(如选中加粗文本,“加粗”菜单会激活),用不到则返回 false
13
+ isActive(editor) {
14
+ return false
15
+ }
16
+ // 菜单是否需要禁用(如选中 H1 ,“引用”菜单被禁用),用不到则返回 false
17
+ isDisabled(editor) {
18
+ return false
19
+ }
20
+ // 点击菜单时触发的函数
21
+ exec(editor, value) {
22
+ if (this.isDisabled(editor)) return
23
+ let node = editor.children
24
+ let nodes = JSON.parse(JSON.stringify(node)) //拷贝一份
25
+ //判断数组中是否有attachment
26
+ let hasAttachment = false
27
+ for(let i = 0; i < node.length; i++){
28
+ for(let j = 0; j < node[i].children.length; j++){
29
+ if(node[i].children[j].type === 'attachment') {
30
+ hasAttachment = true
31
+ break
32
+ }
33
+ }
34
+ }
35
+ if(hasAttachment) return
36
+ const resume = {
37
+ type: 'paragraph',
38
+ children: [{
39
+ type: 'attachment',
40
+ children: [{text:''}]
41
+ }]
42
+ }
43
+ nodes.unshift(resume)
44
+ editor.clear()
45
+ for(let i = 0; i < nodes.length; i++){
46
+ editor.insertNode(nodes[i])
47
+ }
48
+ }
49
+ }
50
+
51
+ class redButtonMenu {
52
+ constructor() {
53
+ this.title = '添加红头' // 自定义菜单标题
54
+ this.tag = 'button'
55
+ }
56
+ // 获取菜单执行时的 value ,用不到则返回空 字符串或 false
57
+ getValue(editor) {
58
+ return false
59
+ }
60
+ // 菜单是否需要激活(如选中加粗文本,“加粗”菜单会激活),用不到则返回 false
61
+ isActive(editor) {
62
+ return false
63
+ }
64
+ // 菜单是否需要禁用(如选中 H1 ,“引用”菜单被禁用),用不到则返回 false
65
+ isDisabled(editor) {
66
+ return false
67
+ }
68
+ // 点击菜单时触发的函数
69
+ exec(editor, value) {
70
+ if (this.isDisabled(editor)) return
71
+ const resume = {
72
+ type: 'paragraph',
73
+ children: [
74
+ {
75
+ text:'XXXXXXX(单位)文件',
76
+ color: 'rgb(225, 60, 57)',
77
+ fontSize: '48px'
78
+ }
79
+ ],
80
+ textAlign: 'center'
81
+ }
82
+ const resume1 = {
83
+ type: 'paragraph',
84
+ children: [
85
+ {
86
+ text:'xxx〔xx〕xxxx 号',
87
+ color: '#333333',
88
+ fontSize: '16px'
89
+ }
90
+ ],
91
+ textAlign: 'center'
92
+ }
93
+ const resume2 = {
94
+ type: 'divider',
95
+ children: [{text:''}]
96
+ }
97
+ editor.insertNode(resume)
98
+ editor.insertNode(resume1)
99
+ editor.insertNode(resume2)
100
+ }
101
+ }
102
+
103
+
104
+ const signMenuConf = {
105
+ key: 'signMenu',
106
+ factory() {
107
+ return new signButtonMenu()
108
+ },
109
+ }
110
+
111
+ const redMenuConf = {
112
+ key: 'redMenu',
113
+ factory() {
114
+ return new redButtonMenu()
115
+ },
116
+ }
117
+
118
+ export const menuModule = {
119
+ menus: [signMenuConf,redMenuConf]
120
+ }
@@ -0,0 +1,39 @@
1
+ import { h, VNode } from 'snabbdom'
2
+
3
+ function renderAttachment(elem, children, editor) {
4
+ const iconVnode = h(
5
+ 'img',
6
+ {
7
+ props: { src: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABPCAYAAAB8kULjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyOThBN0E1NUNDM0QxMUU4QjNFQ0Y2RTQyQUQxOTZGQSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyOThBN0E1NkNDM0QxMUU4QjNFQ0Y2RTQyQUQxOTZGQSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI5OEE3QTUzQ0MzRDExRThCM0VDRjZFNDJBRDE5NkZBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI5OEE3QTU0Q0MzRDExRThCM0VDRjZFNDJBRDE5NkZBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+WxRDagAAFoJJREFUeNrMnQl8VdXx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' }, // HTML 属性,驼峰式写法
8
+ style: { width: '20px',height: '20px',position: 'absolute',top: '0',left: '0'},
9
+ }
10
+ )
11
+ const iconText = h(
12
+ 'span',
13
+ {
14
+ props: { contentEditable: false },
15
+ style: {display: 'inline-block',paddingLeft: '25px'}
16
+ },
17
+ [ '致用大学' ]
18
+ )
19
+ const attachVnode = h(
20
+ 'span',
21
+ {
22
+ props: { contentEditable: false },
23
+ style: { display: 'inline-block',position: 'relative'},
24
+ // on: { click() { console.log('clicked', link) } }
25
+ },
26
+ [ iconVnode,iconText]
27
+ )
28
+ return attachVnode
29
+ }
30
+
31
+
32
+ const renderElemConf = {
33
+ type: 'attachment',
34
+ renderElem: renderAttachment,
35
+ }
36
+
37
+ export const nodeModule = {
38
+ renderElems: [renderElemConf]
39
+ }
package/src/index.js CHANGED
@@ -12,6 +12,7 @@ import buttonGroup from './components/buttonGroup/index';
12
12
  import spinner from './components/spinner/index';
13
13
  import treeList from './components/treeList/index';
14
14
  import flip from './components/flip/index';
15
+ import editor from './components/editor/index';
15
16
 
16
17
  const components = [
17
18
  Calendar,
@@ -25,7 +26,8 @@ const components = [
25
26
  Table,
26
27
  buttonGroup,
27
28
  treeList,
28
- flip
29
+ flip,
30
+ editor
29
31
  ];
30
32
 
31
33
  function install(app) {
@@ -37,7 +39,7 @@ function install(app) {
37
39
  }
38
40
 
39
41
  export default {
40
- version: '1.8.31',
42
+ version: '1.10.32',
41
43
  install,
42
44
  Calendar,
43
45
  Message,
@@ -52,6 +54,7 @@ export default {
52
54
  Table,
53
55
  buttonGroup,
54
56
  treeList,
55
- flip
57
+ flip,
58
+ editor
56
59
  };
57
60