vue-editify 0.2.8 → 0.2.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. package/examples/App.vue +11 -6
  2. package/lib/components/button/button.vue.d.ts +271 -0
  3. package/lib/components/button/props.d.ts +4 -0
  4. package/lib/components/checkbox/checkbox.vue.d.ts +2 -2
  5. package/lib/components/layer/layer.vue.d.ts +12 -3
  6. package/lib/components/layer/props.d.ts +4 -0
  7. package/lib/components/menu/menu.vue.d.ts +12 -0
  8. package/lib/components/menu/props.d.ts +4 -0
  9. package/lib/components/toolbar/props.d.ts +8 -0
  10. package/lib/components/toolbar/toolbar.vue.d.ts +18 -0
  11. package/lib/components/tooltip/props.d.ts +4 -0
  12. package/lib/components/tooltip/tooltip.vue.d.ts +9 -0
  13. package/lib/core/tool.d.ts +7 -0
  14. package/lib/editify/editify.vue.d.ts +89 -28
  15. package/lib/editify/props.d.ts +8 -0
  16. package/lib/editify.es.js +472 -382
  17. package/lib/editify.umd.js +2 -2
  18. package/lib/hljs/index.d.ts +7 -4
  19. package/lib/index.d.ts +90 -29
  20. package/package.json +6 -6
  21. package/src/components/button/button.less +48 -48
  22. package/src/components/button/button.vue +4 -3
  23. package/src/components/button/props.ts +5 -0
  24. package/src/components/layer/layer.less +1 -1
  25. package/src/components/layer/layer.vue +111 -84
  26. package/src/components/layer/props.ts +6 -1
  27. package/src/components/menu/menu.less +0 -1
  28. package/src/components/menu/menu.vue +46 -70
  29. package/src/components/menu/props.ts +5 -0
  30. package/src/components/toolbar/props.ts +10 -0
  31. package/src/components/toolbar/toolbar.vue +49 -49
  32. package/src/components/tooltip/props.ts +5 -0
  33. package/src/components/tooltip/tooltip.less +7 -15
  34. package/src/components/tooltip/tooltip.vue +5 -7
  35. package/src/core/tool.ts +27 -1
  36. package/src/editify/editify.less +0 -5
  37. package/src/editify/editify.vue +10 -6
  38. package/src/editify/props.ts +10 -0
  39. package/src/hljs/index.ts +34 -28
  40. package/src/index.ts +1 -1
@@ -1,8 +1,15 @@
1
1
 
2
+ /**
3
+ * 语言选项类型
4
+ */
2
5
  export type LanguagesItemType = {
3
6
  label?: string;
4
7
  value?: string;
5
8
  };
9
+ /**
10
+ * 可选择语言列表
11
+ */
12
+ export declare const languages: LanguagesItemType[];
6
13
  /**
7
14
  * 获取经过hljs处理的html元素
8
15
  * @param code
@@ -10,7 +17,3 @@ export type LanguagesItemType = {
10
17
  * @returns
11
18
  */
12
19
  export declare const getHljsHtml: (code: string, language: string) => string;
13
- /**
14
- * 可选择语言列表
15
- */
16
- export declare const languages: LanguagesItemType[];
package/lib/index.d.ts CHANGED
@@ -118,6 +118,14 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
118
118
  type: BooleanConstructor;
119
119
  default: boolean;
120
120
  };
121
+ zIndex: {
122
+ type: NumberConstructor;
123
+ default: number;
124
+ };
125
+ offset: {
126
+ type: NumberConstructor;
127
+ default: number;
128
+ };
121
129
  }, {
122
130
  editor: import('vue').Ref<{
123
131
  $el: HTMLElement;
@@ -142,8 +150,8 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
142
150
  key: number;
143
151
  type: import('alex-editor').AlexElementType;
144
152
  parsedom: string | null;
145
- marks: import('alex-editor/lib/core/tool').ObjectType | null;
146
- styles: import('alex-editor/lib/core/tool').ObjectType | null;
153
+ marks: import('alex-editor').ObjectType | null;
154
+ styles: import('alex-editor').ObjectType | null;
147
155
  textContent: string | null;
148
156
  children: any[] | null;
149
157
  parent: any | null;
@@ -162,7 +170,7 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
162
170
  getUneditableElement: () => import('alex-editor').AlexElement | null;
163
171
  isEqual: (element: import('alex-editor').AlexElement) => boolean;
164
172
  isContains: (element: import('alex-editor').AlexElement) => boolean;
165
- isOnlyHasBreak: () => boolean;
173
+ isOnlyHasBreak: () => boolean | 0;
166
174
  isPreStyle: () => boolean;
167
175
  hasMarks: () => boolean;
168
176
  hasStyles: () => boolean;
@@ -187,8 +195,8 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
187
195
  key: number;
188
196
  type: import('alex-editor').AlexElementType;
189
197
  parsedom: string | null;
190
- marks: import('alex-editor/lib/core/tool').ObjectType | null;
191
- styles: import('alex-editor/lib/core/tool').ObjectType | null;
198
+ marks: import('alex-editor').ObjectType | null;
199
+ styles: import('alex-editor').ObjectType | null;
192
200
  textContent: string | null;
193
201
  children: any[] | null;
194
202
  parent: any | null;
@@ -207,7 +215,7 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
207
215
  getUneditableElement: () => import('alex-editor').AlexElement | null;
208
216
  isEqual: (element: import('alex-editor').AlexElement) => boolean;
209
217
  isContains: (element: import('alex-editor').AlexElement) => boolean;
210
- isOnlyHasBreak: () => boolean;
218
+ isOnlyHasBreak: () => boolean | 0;
211
219
  isPreStyle: () => boolean;
212
220
  hasMarks: () => boolean;
213
221
  hasStyles: () => boolean;
@@ -236,8 +244,8 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
236
244
  key: number;
237
245
  type: import('alex-editor').AlexElementType;
238
246
  parsedom: string | null;
239
- marks: import('alex-editor/lib/core/tool').ObjectType | null;
240
- styles: import('alex-editor/lib/core/tool').ObjectType | null;
247
+ marks: import('alex-editor').ObjectType | null;
248
+ styles: import('alex-editor').ObjectType | null;
241
249
  textContent: string | null;
242
250
  children: any[] | null;
243
251
  parent: any | null;
@@ -256,7 +264,7 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
256
264
  getUneditableElement: () => import('alex-editor').AlexElement | null;
257
265
  isEqual: (element: import('alex-editor').AlexElement) => boolean;
258
266
  isContains: (element: import('alex-editor').AlexElement) => boolean;
259
- isOnlyHasBreak: () => boolean;
267
+ isOnlyHasBreak: () => boolean | 0;
260
268
  isPreStyle: () => boolean;
261
269
  hasMarks: () => boolean;
262
270
  hasStyles: () => boolean;
@@ -292,8 +300,8 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
292
300
  key: number;
293
301
  type: import('alex-editor').AlexElementType;
294
302
  parsedom: string | null;
295
- marks: import('alex-editor/lib/core/tool').ObjectType | null;
296
- styles: import('alex-editor/lib/core/tool').ObjectType | null;
303
+ marks: import('alex-editor').ObjectType | null;
304
+ styles: import('alex-editor').ObjectType | null;
297
305
  textContent: string | null;
298
306
  children: any[] | null;
299
307
  parent: any | null;
@@ -312,7 +320,7 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
312
320
  getUneditableElement: () => import('alex-editor').AlexElement | null;
313
321
  isEqual: (element: import('alex-editor').AlexElement) => boolean;
314
322
  isContains: (element: import('alex-editor').AlexElement) => boolean;
315
- isOnlyHasBreak: () => boolean;
323
+ isOnlyHasBreak: () => boolean | 0;
316
324
  isPreStyle: () => boolean;
317
325
  hasMarks: () => boolean;
318
326
  hasStyles: () => boolean;
@@ -337,8 +345,8 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
337
345
  key: number;
338
346
  type: import('alex-editor').AlexElementType;
339
347
  parsedom: string | null;
340
- marks: import('alex-editor/lib/core/tool').ObjectType | null;
341
- styles: import('alex-editor/lib/core/tool').ObjectType | null;
348
+ marks: import('alex-editor').ObjectType | null;
349
+ styles: import('alex-editor').ObjectType | null;
342
350
  textContent: string | null;
343
351
  children: any[] | null;
344
352
  parent: any | null;
@@ -357,7 +365,7 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
357
365
  getUneditableElement: () => import('alex-editor').AlexElement | null;
358
366
  isEqual: (element: import('alex-editor').AlexElement) => boolean;
359
367
  isContains: (element: import('alex-editor').AlexElement) => boolean;
360
- isOnlyHasBreak: () => boolean;
368
+ isOnlyHasBreak: () => boolean | 0;
361
369
  isPreStyle: () => boolean;
362
370
  hasMarks: () => boolean;
363
371
  hasStyles: () => boolean;
@@ -386,8 +394,8 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
386
394
  key: number;
387
395
  type: import('alex-editor').AlexElementType;
388
396
  parsedom: string | null;
389
- marks: import('alex-editor/lib/core/tool').ObjectType | null;
390
- styles: import('alex-editor/lib/core/tool').ObjectType | null;
397
+ marks: import('alex-editor').ObjectType | null;
398
+ styles: import('alex-editor').ObjectType | null;
391
399
  textContent: string | null;
392
400
  children: any[] | null;
393
401
  parent: any | null;
@@ -406,7 +414,7 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
406
414
  getUneditableElement: () => import('alex-editor').AlexElement | null;
407
415
  isEqual: (element: import('alex-editor').AlexElement) => boolean;
408
416
  isContains: (element: import('alex-editor').AlexElement) => boolean;
409
- isOnlyHasBreak: () => boolean;
417
+ isOnlyHasBreak: () => boolean | 0;
410
418
  isPreStyle: () => boolean;
411
419
  hasMarks: () => boolean;
412
420
  hasStyles: () => boolean;
@@ -432,8 +440,50 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
432
440
  };
433
441
  } | null;
434
442
  __guid: number;
435
- __events: import('alex-editor/lib/core/tool').ObjectType;
436
- __firstRender: boolean;
443
+ __events: import('alex-editor').ObjectType;
444
+ __oldStack: {
445
+ key: number;
446
+ type: import('alex-editor').AlexElementType;
447
+ parsedom: string | null;
448
+ marks: import('alex-editor').ObjectType | null;
449
+ styles: import('alex-editor').ObjectType | null;
450
+ textContent: string | null;
451
+ children: any[] | null;
452
+ parent: any | null;
453
+ behavior: "default" | "block";
454
+ namespace: string | null;
455
+ locked: boolean;
456
+ elm: HTMLElement | null;
457
+ isBlock: () => boolean;
458
+ isInblock: () => boolean;
459
+ isInline: () => boolean;
460
+ isClosed: () => boolean;
461
+ isText: () => boolean;
462
+ isBreak: () => boolean;
463
+ isEmpty: () => boolean;
464
+ isSpaceText: () => boolean;
465
+ getUneditableElement: () => import('alex-editor').AlexElement | null;
466
+ isEqual: (element: import('alex-editor').AlexElement) => boolean;
467
+ isContains: (element: import('alex-editor').AlexElement) => boolean;
468
+ isOnlyHasBreak: () => boolean | 0;
469
+ isPreStyle: () => boolean;
470
+ hasMarks: () => boolean;
471
+ hasStyles: () => boolean;
472
+ hasChildren: () => boolean;
473
+ hasContains: (element: import('alex-editor').AlexElement) => boolean;
474
+ clone: (deep?: boolean | undefined) => import('alex-editor').AlexElement;
475
+ convertToBlock: () => void;
476
+ toEmpty: () => void;
477
+ getBlock: () => import('alex-editor').AlexElement;
478
+ getInblock: () => import('alex-editor').AlexElement | null;
479
+ getInline: () => import('alex-editor').AlexElement | null;
480
+ isEqualStyles: (element: import('alex-editor').AlexElement) => boolean;
481
+ isEqualMarks: (element: import('alex-editor').AlexElement) => boolean;
482
+ isFirst: (element: import('alex-editor').AlexElement) => boolean;
483
+ isLast: (element: import('alex-editor').AlexElement) => boolean;
484
+ __render: () => void;
485
+ __fullClone: () => import('alex-editor').AlexElement;
486
+ }[];
437
487
  __isInputChinese: boolean;
438
488
  __innerSelectionChange: boolean;
439
489
  __chineseInputTimer: any;
@@ -474,8 +524,8 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
474
524
  key: number;
475
525
  type: import('alex-editor').AlexElementType;
476
526
  parsedom: string | null;
477
- marks: import('alex-editor/lib/core/tool').ObjectType | null;
478
- styles: import('alex-editor/lib/core/tool').ObjectType | null;
527
+ marks: import('alex-editor').ObjectType | null;
528
+ styles: import('alex-editor').ObjectType | null;
479
529
  textContent: string | null;
480
530
  children: any[] | null;
481
531
  parent: any | null;
@@ -494,7 +544,7 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
494
544
  getUneditableElement: () => import('alex-editor').AlexElement | null;
495
545
  isEqual: (element: import('alex-editor').AlexElement) => boolean;
496
546
  isContains: (element: import('alex-editor').AlexElement) => boolean;
497
- isOnlyHasBreak: () => boolean;
547
+ isOnlyHasBreak: () => boolean | 0;
498
548
  isPreStyle: () => boolean;
499
549
  hasMarks: () => boolean;
500
550
  hasStyles: () => boolean;
@@ -520,8 +570,8 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
520
570
  key: number;
521
571
  type: import('alex-editor').AlexElementType;
522
572
  parsedom: string | null;
523
- marks: import('alex-editor/lib/core/tool').ObjectType | null;
524
- styles: import('alex-editor/lib/core/tool').ObjectType | null;
573
+ marks: import('alex-editor').ObjectType | null;
574
+ styles: import('alex-editor').ObjectType | null;
525
575
  textContent: string | null;
526
576
  children: any[] | null;
527
577
  parent: any | null;
@@ -540,7 +590,7 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
540
590
  getUneditableElement: () => import('alex-editor').AlexElement | null;
541
591
  isEqual: (element: import('alex-editor').AlexElement) => boolean;
542
592
  isContains: (element: import('alex-editor').AlexElement) => boolean;
543
- isOnlyHasBreak: () => boolean;
593
+ isOnlyHasBreak: () => boolean | 0;
544
594
  isPreStyle: () => boolean;
545
595
  hasMarks: () => boolean;
546
596
  hasStyles: () => boolean;
@@ -563,6 +613,7 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
563
613
  }[];
564
614
  }>;
565
615
  textValue: import('vue').ComputedRef<string>;
616
+ menuHeight: import('vue').ComputedRef<number | null>;
566
617
  collapseToEnd: () => void;
567
618
  collapseToStart: () => void;
568
619
  undo: () => void;
@@ -695,22 +746,31 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
695
746
  type: BooleanConstructor;
696
747
  default: boolean;
697
748
  };
749
+ zIndex: {
750
+ type: NumberConstructor;
751
+ default: number;
752
+ };
753
+ offset: {
754
+ type: NumberConstructor;
755
+ default: number;
756
+ };
698
757
  }>> & {
758
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
699
759
  onFocus?: ((...args: any[]) => any) | undefined;
700
760
  onBlur?: ((...args: any[]) => any) | undefined;
701
761
  onChange?: ((...args: any[]) => any) | undefined;
702
762
  onKeydown?: ((...args: any[]) => any) | undefined;
703
763
  onKeyup?: ((...args: any[]) => any) | undefined;
704
- "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
705
764
  onInsertparagraph?: ((...args: any[]) => any) | undefined;
706
765
  onRangeupdate?: ((...args: any[]) => any) | undefined;
707
766
  onUpdateview?: ((...args: any[]) => any) | undefined;
708
767
  }, {
709
768
  color: string | null;
710
769
  disabled: boolean;
711
- menu: import('./core/tool').MenuConfigType;
770
+ zIndex: number;
712
771
  modelValue: string;
713
772
  border: boolean;
773
+ menu: import('./core/tool').MenuConfigType;
714
774
  placeholder: string;
715
775
  autoheight: boolean;
716
776
  toolbar: import('./core/tool').ToolbarConfigType;
@@ -735,6 +795,7 @@ declare const Editify: import('./core/tool').SFCWithInstall<import('vue').Define
735
795
  tab: boolean;
736
796
  plugins: import('./core/tool').PluginType[];
737
797
  dark: boolean;
798
+ offset: number;
738
799
  }, {}>>;
739
800
  export type { ButtonTypeType, ButtonOptionsItemType, ButtonSelectConfigType, ButtonDisplayConfigType } from './components/button/props';
740
801
  export type { InsertImageUploadErrorType } from './components/insertImage/props';
@@ -743,7 +804,7 @@ export type { MenuButtonType, MenuSelectButtonType, MenuDisplayButtonType, MenuI
743
804
  export type { ElementMatchConfigType } from './core/function';
744
805
  export { elementIsMatch, getMatchElementByElement, getMatchElementByRange, isList, isTask, elementIsInList, elementIsInTask, hasPreInRange, hasQuoteInRange, hasListInRange, hasTaskInRange, hasLinkInRange, hasTableInRange, hasImageInRange, hasVideoInRange, isRangeInQuote, isRangeInList, isRangeInTask, queryTextStyle, queryTextMark, getRangeText, setIndentIncrease, setIndentDecrease, setQuote, setAlign, setList, setTask, setTextStyle, setTextMark, removeTextStyle, removeTextMark, setLineHeight, insertLink, insertImage, insertVideo, insertTable, insertCodeBlock, insertSeparator } from './core/function';
745
806
  declare const install: (app: App) => void;
746
- declare const version = "0.2.8";
807
+ declare const version = "0.2.10";
747
808
  export { AlexElement } from 'alex-editor';
748
809
  export type { AttachmentOptionsType } from './plugins/attachment';
749
810
  export type { InsertAttachmentUploadErrorType } from './plugins/attachment/insertAttachment/props';
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "vue-editify",
3
- "version": "0.2.8",
3
+ "version": "0.2.10",
4
4
  "private": false,
5
5
  "sideEffects": [
6
6
  "*.css"
7
7
  ],
8
8
  "type": "module",
9
- "author": "ling0523",
9
+ "author": "so-better",
10
10
  "main": "lib/editify.umd.js",
11
11
  "module": "lib/editify.es.js",
12
12
  "types": "lib/index.d.ts",
@@ -17,11 +17,11 @@
17
17
  "lib": "vue-tsc && vite build"
18
18
  },
19
19
  "dependencies": {
20
- "alex-editor": "^1.4.16",
21
- "dap-util": "^1.5.5",
20
+ "alex-editor": "^1.4.20",
21
+ "dap-util": "^1.5.8",
22
22
  "highlight.js": "^11.8.0",
23
23
  "katex": "^0.16.10",
24
- "vue": "^3.4.19"
24
+ "vue": "^3.4.31"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/katex": "^0.16.7",
@@ -42,6 +42,6 @@
42
42
  ],
43
43
  "repository": {
44
44
  "type": "git",
45
- "url": "https://github.com/ling0523/editify"
45
+ "url": "https://github.com/so-better/editify"
46
46
  }
47
47
  }
@@ -78,66 +78,66 @@
78
78
  }
79
79
  }
80
80
  }
81
+ }
81
82
 
82
- .editify-button-layer {
83
- display: block;
84
- position: relative;
85
- overflow-x: hidden;
86
- overflow-y: auto;
83
+ .editify-button-layer {
84
+ display: block;
85
+ position: relative;
86
+ overflow-x: hidden;
87
+ overflow-y: auto;
87
88
 
88
- &:not(:hover)::-webkit-scrollbar {
89
- display: none;
90
- }
89
+ &:not(:hover)::-webkit-scrollbar {
90
+ display: none;
91
+ }
92
+
93
+ .editify-button-options {
94
+ display: block;
95
+ width: 100%;
96
+ padding: 4px 0;
91
97
 
92
- .editify-button-options {
93
- display: block;
98
+ .editify-button-option {
99
+ display: flex;
100
+ justify-content: flex-start;
101
+ align-items: center;
94
102
  width: 100%;
95
- padding: 4px 0;
103
+ padding: 6px 12px;
104
+ transition: all 300ms;
105
+ opacity: 0.8;
106
+ white-space: nowrap;
107
+ text-overflow: ellipsis;
108
+ overflow: hidden;
109
+ box-sizing: border-box;
96
110
 
97
- .editify-button-option {
111
+ &:hover {
112
+ opacity: 1;
113
+ cursor: pointer;
114
+ background-color: var(--editify-background-dark);
115
+ }
116
+
117
+ &:active {
118
+ opacity: 1;
119
+ background-color: var(--editify-background-darker);
120
+ }
121
+
122
+ &.editify-active {
123
+ opacity: 1;
124
+ background-color: var(--editify-background-darker);
125
+ }
126
+
127
+ .editify-button-option-flex {
98
128
  display: flex;
99
129
  justify-content: flex-start;
100
130
  align-items: center;
101
131
  width: 100%;
102
- padding: 6px 12px;
103
- transition: all 300ms;
104
- opacity: 0.8;
105
- white-space: nowrap;
106
- text-overflow: ellipsis;
107
- overflow: hidden;
108
- box-sizing: border-box;
109
-
110
- &:hover {
111
- opacity: 1;
112
- cursor: pointer;
113
- background-color: var(--editify-background-dark);
114
- }
115
-
116
- &:active {
117
- opacity: 1;
118
- background-color: var(--editify-background-darker);
119
- }
120
132
 
121
- &.editify-active {
122
- opacity: 1;
123
- background-color: var(--editify-background-darker);
133
+ :deep(.editify-icon) {
134
+ margin-right: 10px;
124
135
  }
125
136
 
126
- .editify-button-option-flex {
127
- display: flex;
128
- justify-content: flex-start;
129
- align-items: center;
130
- width: 100%;
131
-
132
- :deep(.editify-icon) {
133
- margin-right: 10px;
134
- }
135
-
136
- span {
137
- overflow: hidden;
138
- text-overflow: ellipsis;
139
- white-space: nowrap;
140
- }
137
+ span {
138
+ overflow: hidden;
139
+ text-overflow: ellipsis;
140
+ white-space: nowrap;
141
141
  }
142
142
  }
143
143
  }
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div class="editify-button">
3
3
  <div class="editify-button-wrap" :class="{ 'editify-right-border': rightBorder, 'editify-left-border': leftBorder }">
4
- <Tooltip :content="title" :disabled="!tooltip">
4
+ <Tooltip :content="title" :disabled="!tooltip" :z-index="zIndex">
5
5
  <div ref="btnRef" :style="btnStyle" class="editify-button-el" :class="{ 'editify-disabled': disabled, 'editify-active': active }" @mouseenter="status = 'hover'" @mouseleave="status = null" @mousedown="status = 'down'" @mouseup="status = 'hover'" @click="handleClick">
6
6
  <div v-if="type == 'default' || type == 'select'" class="editify-button-slot">
7
7
  <slot></slot>
@@ -10,7 +10,7 @@
10
10
  <Icon v-if="type == 'select' || type == 'display'" value="caret-down" class="editify-button-caret" :class="{ 'editify-rotate': show }"></Icon>
11
11
  </div>
12
12
  </Tooltip>
13
- <Layer ref="layerRef" v-model="show" :node="btnRef" border fade placement="bottom-start" :z-index="12" animation="translate" @show="emits('layerShow')" @shown="emits('layerShown')" @hidden="emits('layerHidden')">
13
+ <Layer ref="layerRef" v-model="show" :node="btnRef" border placement="bottom-start" :z-index="zIndex + 1" animation="translate" @show="emits('layerShow')" @shown="emits('layerShown')" @hidden="emits('layerHidden')">
14
14
  <div class="editify-button-layer" :style="{ width: (type == 'select' ? parseSelectConfig.width : parseDisplayConfig.width) + 'px', maxHeight: (type == 'select' ? parseSelectConfig.maxHeight : parseDisplayConfig.maxHeight) + 'px', overflow: hideScroll ? 'visible' : '' }">
15
15
  <slot v-if="$slots.layer" name="layer" :options="cmpOptions"></slot>
16
16
  <div v-else class="editify-button-options">
@@ -194,7 +194,8 @@ const handleClick = () => {
194
194
 
195
195
  defineExpose({
196
196
  show,
197
- status
197
+ status,
198
+ layerRef
198
199
  })
199
200
  </script>
200
201
  <style scoped src="./button.less"></style>
@@ -89,6 +89,11 @@ export const ButtonProps = {
89
89
  hideScroll: {
90
90
  type: Boolean,
91
91
  default: false
92
+ },
93
+ //工具提示的层级,下拉选式的浮层层级在此基础上+1
94
+ zIndex: {
95
+ type: Number,
96
+ default: 1
92
97
  }
93
98
  }
94
99
 
@@ -20,7 +20,7 @@
20
20
 
21
21
  .editify-layer {
22
22
  display: block;
23
- position: absolute;
23
+ position: fixed;
24
24
  padding: 0 0 10px 0;
25
25
  font-size: var(--editify-font-size);
26
26
  color: var(--editify-font-color);