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,14 +1,13 @@
1
1
  <template>
2
- <div class="editify-menu" :class="{ 'editify-border': menuShowBorder, 'editify-source': isSourceView && menuMode == 'inner', 'editify-fullscreen': isFullScreen }" :data-editify-mode="menuMode" :style="config.style || ''">
2
+ <div ref="menuRef" class="editify-menu" :class="{ 'editify-border': menuShowBorder, 'editify-source': isSourceView && menuMode == 'inner', 'editify-fullscreen': isFullScreen }" :data-editify-mode="menuMode" :style="{ zIndex: zIndex, ...(config.style || {}) }">
3
3
  <MenuItem v-for="item in menuNames" :name="item" :disabled="menuDisabled(item)"></MenuItem>
4
4
  </div>
5
5
  </template>
6
6
  <script setup lang="ts">
7
- import { common as DapCommon } from 'dap-util'
8
- import { h, getCurrentInstance, ref, computed, inject, ComponentInternalInstance, Ref, ComputedRef, defineComponent } from 'vue'
7
+ import { common as DapCommon, event as DapEvent } from 'dap-util'
8
+ import { h, ref, computed, inject, ComponentInternalInstance, Ref, ComputedRef, defineComponent, onMounted, getCurrentInstance, onBeforeUnmount } from 'vue'
9
9
  import { AlexEditor, AlexElementsRangeType } from 'alex-editor'
10
10
  import Icon from '@/components/icon/icon.vue'
11
- import Layer from '@/components/layer/layer.vue'
12
11
  import Button from '@/components/button/button.vue'
13
12
  import Colors from '@/components/colors/colors.vue'
14
13
  import InsertLink from '@/components/insertLink/insertLink.vue'
@@ -23,6 +22,7 @@ import { MenuProps } from './props'
23
22
  defineOptions({
24
23
  name: 'Menu'
25
24
  })
25
+ const instance = getCurrentInstance()!
26
26
  const props = defineProps(MenuProps)
27
27
 
28
28
  const $editTrans = inject<(key: string) => any>('$editTrans')!
@@ -35,6 +35,10 @@ const dataRangeCaches = inject<Ref<AlexElementsRangeType>>('dataRangeCaches')!
35
35
  const showBorder = inject<ComputedRef<boolean>>('showBorder')!
36
36
  const pluginResultList = inject<ComputedRef<PluginResultType[]>>('pluginResultList')!
37
37
 
38
+ //菜单dom
39
+ const menuRef = ref<HTMLElement | null>(null)
40
+ //菜单高度
41
+ const height = ref<number>(0)
38
42
  //撤销按钮配置
39
43
  const undoConfig = ref<ObjectType>({
40
44
  show: props.config.undo!.show,
@@ -938,13 +942,14 @@ const handleRangeUpdate = () => {
938
942
  //菜单项子组件
939
943
  const MenuItem = defineComponent(
940
944
  selfProps => {
941
- //获取实例
942
- const itemInstance = getCurrentInstance()!
943
945
  //共同设置的属性
944
946
  const itemProps = {
945
947
  tooltip: props.config.tooltip,
948
+ color: props.color,
949
+ zIndex: props.zIndex + 1,
946
950
  name: selfProps.name
947
951
  }
952
+ const btnRef = ref<InstanceType<typeof Button> | null>(null)
948
953
  return () => {
949
954
  //撤销按钮
950
955
  if (itemProps.name == 'undo' && undoConfig.value.show) {
@@ -956,7 +961,6 @@ const MenuItem = defineComponent(
956
961
  leftBorder: undoConfig.value.leftBorder,
957
962
  rightBorder: undoConfig.value.rightBorder,
958
963
  disabled: undoConfig.value.disabled || selfProps.disabled || disabled.value,
959
- color: props.color,
960
964
  active: undoConfig.value.active,
961
965
  onOperate: handleOperate
962
966
  },
@@ -973,7 +977,6 @@ const MenuItem = defineComponent(
973
977
  leftBorder: redoConfig.value.leftBorder,
974
978
  rightBorder: redoConfig.value.rightBorder,
975
979
  disabled: redoConfig.value.disabled || selfProps.disabled || disabled.value,
976
- color: props.color,
977
980
  active: redoConfig.value.active,
978
981
  onOperate: handleOperate
979
982
  },
@@ -989,7 +992,6 @@ const MenuItem = defineComponent(
989
992
  title: $editTrans('heading'),
990
993
  leftBorder: headingConfig.value.leftBorder,
991
994
  rightBorder: headingConfig.value.rightBorder,
992
- color: props.color,
993
995
  disabled: headingConfig.value.disabled || selfProps.disabled || disabled.value,
994
996
  active: headingConfig.value.active,
995
997
  onOperate: handleOperate
@@ -1006,7 +1008,6 @@ const MenuItem = defineComponent(
1006
1008
  title: $editTrans('indent'),
1007
1009
  leftBorder: indentConfig.value.leftBorder,
1008
1010
  rightBorder: indentConfig.value.rightBorder,
1009
- color: props.color,
1010
1011
  disabled: indentConfig.value.disabled || selfProps.disabled || disabled.value,
1011
1012
  active: indentConfig.value.active,
1012
1013
  onOperate: handleOperate
@@ -1023,7 +1024,6 @@ const MenuItem = defineComponent(
1023
1024
  title: $editTrans('quote'),
1024
1025
  leftBorder: quoteConfig.value.leftBorder,
1025
1026
  rightBorder: quoteConfig.value.rightBorder,
1026
- color: props.color,
1027
1027
  disabled: quoteConfig.value.disabled || selfProps.disabled || disabled.value,
1028
1028
  active: quoteConfig.value.active,
1029
1029
  onOperate: handleOperate
@@ -1040,7 +1040,6 @@ const MenuItem = defineComponent(
1040
1040
  title: $editTrans('separator'),
1041
1041
  leftBorder: separatorConfig.value.leftBorder,
1042
1042
  rightBorder: separatorConfig.value.rightBorder,
1043
- color: props.color,
1044
1043
  disabled: separatorConfig.value.disabled || selfProps.disabled || disabled.value,
1045
1044
  active: separatorConfig.value.active,
1046
1045
  onOperate: handleOperate
@@ -1059,7 +1058,6 @@ const MenuItem = defineComponent(
1059
1058
  title: $editTrans('align'),
1060
1059
  leftBorder: alignConfig.value.leftBorder,
1061
1060
  rightBorder: alignConfig.value.rightBorder,
1062
- color: props.color,
1063
1061
  disabled: alignConfig.value.disabled || selfProps.disabled || disabled.value,
1064
1062
  active: alignConfig.value.active,
1065
1063
  onOperate: handleOperate
@@ -1076,7 +1074,6 @@ const MenuItem = defineComponent(
1076
1074
  title: $editTrans('orderList'),
1077
1075
  leftBorder: orderListConfig.value.leftBorder,
1078
1076
  rightBorder: orderListConfig.value.rightBorder,
1079
- color: props.color,
1080
1077
  disabled: orderListConfig.value.disabled || selfProps.disabled || disabled.value,
1081
1078
  active: orderListConfig.value.active,
1082
1079
  onOperate: handleOperate
@@ -1093,7 +1090,6 @@ const MenuItem = defineComponent(
1093
1090
  title: $editTrans('unorderList'),
1094
1091
  leftBorder: unorderListConfig.value.leftBorder,
1095
1092
  rightBorder: unorderListConfig.value.rightBorder,
1096
- color: props.color,
1097
1093
  disabled: unorderListConfig.value.disabled || selfProps.disabled || disabled.value,
1098
1094
  active: unorderListConfig.value.active,
1099
1095
  onOperate: handleOperate
@@ -1110,7 +1106,6 @@ const MenuItem = defineComponent(
1110
1106
  title: $editTrans('task'),
1111
1107
  leftBorder: taskConfig.value.leftBorder,
1112
1108
  rightBorder: taskConfig.value.rightBorder,
1113
- color: props.color,
1114
1109
  disabled: taskConfig.value.disabled || selfProps.disabled || disabled.value,
1115
1110
  active: taskConfig.value.active,
1116
1111
  onOperate: handleOperate
@@ -1127,7 +1122,6 @@ const MenuItem = defineComponent(
1127
1122
  title: $editTrans('bold'),
1128
1123
  leftBorder: boldConfig.value.leftBorder,
1129
1124
  rightBorder: boldConfig.value.rightBorder,
1130
- color: props.color,
1131
1125
  disabled: boldConfig.value.disabled || selfProps.disabled || disabled.value,
1132
1126
  active: boldConfig.value.active,
1133
1127
  onOperate: handleOperate
@@ -1144,7 +1138,6 @@ const MenuItem = defineComponent(
1144
1138
  title: $editTrans('underline'),
1145
1139
  leftBorder: underlineConfig.value.leftBorder,
1146
1140
  rightBorder: underlineConfig.value.rightBorder,
1147
- color: props.color,
1148
1141
  disabled: underlineConfig.value.disabled || selfProps.disabled || disabled.value,
1149
1142
  active: underlineConfig.value.active,
1150
1143
  onOperate: handleOperate
@@ -1161,7 +1154,6 @@ const MenuItem = defineComponent(
1161
1154
  title: $editTrans('italic'),
1162
1155
  leftBorder: italicConfig.value.leftBorder,
1163
1156
  rightBorder: italicConfig.value.rightBorder,
1164
- color: props.color,
1165
1157
  disabled: italicConfig.value.disabled || selfProps.disabled || disabled.value,
1166
1158
  active: italicConfig.value.active,
1167
1159
  onOperate: handleOperate
@@ -1178,7 +1170,6 @@ const MenuItem = defineComponent(
1178
1170
  title: $editTrans('strikethrough'),
1179
1171
  leftBorder: strikethroughConfig.value.leftBorder,
1180
1172
  rightBorder: strikethroughConfig.value.rightBorder,
1181
- color: props.color,
1182
1173
  disabled: strikethroughConfig.value.disabled || selfProps.disabled || disabled.value,
1183
1174
  active: strikethroughConfig.value.active,
1184
1175
  onOperate: handleOperate
@@ -1195,7 +1186,6 @@ const MenuItem = defineComponent(
1195
1186
  title: $editTrans('code'),
1196
1187
  leftBorder: codeConfig.value.leftBorder,
1197
1188
  rightBorder: codeConfig.value.rightBorder,
1198
- color: props.color,
1199
1189
  disabled: codeConfig.value.disabled || selfProps.disabled || disabled.value,
1200
1190
  active: codeConfig.value.active,
1201
1191
  onOperate: handleOperate
@@ -1212,7 +1202,6 @@ const MenuItem = defineComponent(
1212
1202
  title: $editTrans('superscript'),
1213
1203
  leftBorder: superConfig.value.leftBorder,
1214
1204
  rightBorder: superConfig.value.rightBorder,
1215
- color: props.color,
1216
1205
  disabled: superConfig.value.disabled || selfProps.disabled || disabled.value,
1217
1206
  active: superConfig.value.active,
1218
1207
  onOperate: handleOperate
@@ -1229,7 +1218,6 @@ const MenuItem = defineComponent(
1229
1218
  title: $editTrans('subscript'),
1230
1219
  leftBorder: subConfig.value.leftBorder,
1231
1220
  rightBorder: subConfig.value.rightBorder,
1232
- color: props.color,
1233
1221
  disabled: subConfig.value.disabled || selfProps.disabled || disabled.value,
1234
1222
  active: subConfig.value.active,
1235
1223
  onOperate: handleOperate
@@ -1246,7 +1234,6 @@ const MenuItem = defineComponent(
1246
1234
  title: $editTrans('formatClear'),
1247
1235
  leftBorder: formatClearConfig.value.leftBorder,
1248
1236
  rightBorder: formatClearConfig.value.rightBorder,
1249
- color: props.color,
1250
1237
  disabled: formatClearConfig.value.disabled || selfProps.disabled || disabled.value,
1251
1238
  active: formatClearConfig.value.active,
1252
1239
  onOperate: handleOperate
@@ -1263,7 +1250,6 @@ const MenuItem = defineComponent(
1263
1250
  title: $editTrans('fontSize'),
1264
1251
  leftBorder: fontSizeConfig.value.leftBorder,
1265
1252
  rightBorder: fontSizeConfig.value.rightBorder,
1266
- color: props.color,
1267
1253
  disabled: fontSizeConfig.value.disabled || selfProps.disabled || disabled.value,
1268
1254
  active: fontSizeConfig.value.active,
1269
1255
  onOperate: handleOperate
@@ -1278,7 +1264,6 @@ const MenuItem = defineComponent(
1278
1264
  title: $editTrans('fontFamily'),
1279
1265
  leftBorder: fontFamilyConfig.value.leftBorder,
1280
1266
  rightBorder: fontFamilyConfig.value.rightBorder,
1281
- color: props.color,
1282
1267
  disabled: fontFamilyConfig.value.disabled || selfProps.disabled || disabled.value,
1283
1268
  active: fontFamilyConfig.value.active,
1284
1269
  onOperate: handleOperate
@@ -1293,7 +1278,6 @@ const MenuItem = defineComponent(
1293
1278
  title: $editTrans('lineHeight'),
1294
1279
  leftBorder: lineHeightConfig.value.leftBorder,
1295
1280
  rightBorder: lineHeightConfig.value.rightBorder,
1296
- color: props.color,
1297
1281
  disabled: lineHeightConfig.value.disabled || selfProps.disabled || disabled.value,
1298
1282
  active: lineHeightConfig.value.active,
1299
1283
  onOperate: handleOperate
@@ -1305,13 +1289,12 @@ const MenuItem = defineComponent(
1305
1289
  Button,
1306
1290
  {
1307
1291
  ...itemProps,
1308
- ref: 'btnRef',
1292
+ ref: btnRef,
1309
1293
  type: 'select',
1310
1294
  selectConfig: foreColorConfig.value.selectConfig,
1311
1295
  title: $editTrans('foreColor'),
1312
1296
  leftBorder: foreColorConfig.value.leftBorder,
1313
1297
  rightBorder: foreColorConfig.value.rightBorder,
1314
- color: props.color,
1315
1298
  disabled: foreColorConfig.value.disabled || selfProps.disabled || disabled.value,
1316
1299
  active: foreColorConfig.value.active,
1317
1300
  hideScroll: true
@@ -1329,8 +1312,7 @@ const MenuItem = defineComponent(
1329
1312
  color: props.color,
1330
1313
  onChange: (val: string) => {
1331
1314
  handleOperate('foreColor', val)
1332
- const btn = <InstanceType<typeof Button>>itemInstance.proxy!.$refs.btnRef
1333
- btn.show = false
1315
+ btnRef.value!.show = false
1334
1316
  }
1335
1317
  })
1336
1318
  }
@@ -1344,12 +1326,11 @@ const MenuItem = defineComponent(
1344
1326
  {
1345
1327
  ...itemProps,
1346
1328
  type: 'select',
1347
- ref: 'btnRef',
1329
+ ref: btnRef,
1348
1330
  selectConfig: backColorConfig.value.selectConfig,
1349
1331
  title: $editTrans('backColor'),
1350
1332
  leftBorder: backColorConfig.value.leftBorder,
1351
1333
  rightBorder: backColorConfig.value.rightBorder,
1352
- color: props.color,
1353
1334
  disabled: backColorConfig.value.disabled || selfProps.disabled || disabled.value,
1354
1335
  active: backColorConfig.value.active,
1355
1336
  onOperate: handleOperate,
@@ -1368,8 +1349,7 @@ const MenuItem = defineComponent(
1368
1349
  color: props.color,
1369
1350
  onChange: val => {
1370
1351
  handleOperate('backColor', val)
1371
- const btn = <InstanceType<typeof Button>>itemInstance.proxy!.$refs.btnRef
1372
- btn.show = false
1352
+ btnRef.value!.show = false
1373
1353
  }
1374
1354
  })
1375
1355
  }
@@ -1382,11 +1362,10 @@ const MenuItem = defineComponent(
1382
1362
  {
1383
1363
  ...itemProps,
1384
1364
  type: 'select',
1385
- ref: 'btnRef',
1365
+ ref: btnRef,
1386
1366
  title: $editTrans('insertLink'),
1387
1367
  leftBorder: linkConfig.value.leftBorder,
1388
1368
  rightBorder: linkConfig.value.rightBorder,
1389
- color: props.color,
1390
1369
  disabled: linkConfig.value.disabled || selfProps.disabled || disabled.value,
1391
1370
  active: linkConfig.value.active,
1392
1371
  hideScroll: true,
@@ -1406,8 +1385,7 @@ const MenuItem = defineComponent(
1406
1385
  text: linkConfig.value.text,
1407
1386
  onInsert: (text, url, newOpen) => {
1408
1387
  handleOperate('link', { text, url, newOpen })
1409
- const btn = <InstanceType<typeof Button>>itemInstance.proxy!.$refs.btnRef
1410
- btn.show = false
1388
+ btnRef.value!.show = false
1411
1389
  }
1412
1390
  })
1413
1391
  }
@@ -1420,11 +1398,10 @@ const MenuItem = defineComponent(
1420
1398
  {
1421
1399
  ...itemProps,
1422
1400
  type: 'select',
1423
- ref: 'btnRef',
1401
+ ref: btnRef,
1424
1402
  title: $editTrans('insertImage'),
1425
1403
  leftBorder: imageConfig.value.leftBorder,
1426
1404
  rightBorder: imageConfig.value.rightBorder,
1427
- color: props.color,
1428
1405
  disabled: imageConfig.value.disabled || selfProps.disabled || disabled.value,
1429
1406
  active: imageConfig.value.active,
1430
1407
  hideScroll: true
@@ -1444,14 +1421,11 @@ const MenuItem = defineComponent(
1444
1421
  customUpload: imageConfig.value.customUpload,
1445
1422
  handleError: imageConfig.value.handleError,
1446
1423
  onChange: () => {
1447
- const btn = <InstanceType<typeof Button>>itemInstance.proxy!.$refs.btnRef
1448
- const layer = <InstanceType<typeof Layer>>btn.$refs.layerRef
1449
- layer.setPosition()
1424
+ btnRef.value!.layerRef!.setPosition()
1450
1425
  },
1451
1426
  onInsert: (urls: string[]) => {
1452
1427
  handleOperate('image', urls)
1453
- const btn = <InstanceType<typeof Button>>itemInstance.proxy!.$refs.btnRef
1454
- btn.show = false
1428
+ btnRef.value!.show = false
1455
1429
  }
1456
1430
  })
1457
1431
  }
@@ -1464,11 +1438,10 @@ const MenuItem = defineComponent(
1464
1438
  {
1465
1439
  ...itemProps,
1466
1440
  type: 'select',
1467
- ref: 'btnRef',
1441
+ ref: btnRef,
1468
1442
  title: $editTrans('insertVideo'),
1469
1443
  leftBorder: videoConfig.value.leftBorder,
1470
1444
  rightBorder: videoConfig.value.rightBorder,
1471
- color: props.color,
1472
1445
  disabled: videoConfig.value.disabled || selfProps.disabled || disabled.value,
1473
1446
  active: videoConfig.value.active,
1474
1447
  hideScroll: true
@@ -1488,14 +1461,11 @@ const MenuItem = defineComponent(
1488
1461
  customUpload: videoConfig.value.customUpload,
1489
1462
  handleError: videoConfig.value.handleError,
1490
1463
  onChange: () => {
1491
- const btn = <InstanceType<typeof Button>>itemInstance.proxy!.$refs.btnRef
1492
- const layer = <InstanceType<typeof Layer>>btn.$refs.layerRef
1493
- layer.setPosition()
1464
+ btnRef.value!.layerRef!.setPosition()
1494
1465
  },
1495
1466
  onInsert: (urls: string[]) => {
1496
1467
  handleOperate('video', urls)
1497
- const btn = <InstanceType<typeof Button>>itemInstance.proxy!.$refs.btnRef
1498
- btn.show = false
1468
+ btnRef.value!.show = false
1499
1469
  }
1500
1470
  })
1501
1471
  }
@@ -1508,11 +1478,10 @@ const MenuItem = defineComponent(
1508
1478
  {
1509
1479
  ...itemProps,
1510
1480
  type: 'select',
1511
- ref: 'btnRef',
1481
+ ref: btnRef,
1512
1482
  title: $editTrans('insertTable'),
1513
1483
  leftBorder: tableConfig.value.leftBorder,
1514
1484
  rightBorder: tableConfig.value.rightBorder,
1515
- color: props.color,
1516
1485
  disabled: tableConfig.value.disabled || selfProps.disabled || disabled.value,
1517
1486
  active: tableConfig.value.active,
1518
1487
  hideScroll: true
@@ -1529,8 +1498,7 @@ const MenuItem = defineComponent(
1529
1498
  maxColumns: tableConfig.value.maxColumns,
1530
1499
  onInsert: (row, column) => {
1531
1500
  handleOperate('table', { row, column })
1532
- const btn = <InstanceType<typeof Button>>itemInstance.proxy!.$refs.btnRef
1533
- btn.show = false
1501
+ btnRef.value!.show = false
1534
1502
  }
1535
1503
  })
1536
1504
  }
@@ -1545,7 +1513,6 @@ const MenuItem = defineComponent(
1545
1513
  title: $editTrans('inserCodeBlock'),
1546
1514
  leftBorder: codeBlockConfig.value.leftBorder,
1547
1515
  rightBorder: codeBlockConfig.value.rightBorder,
1548
- color: props.color,
1549
1516
  disabled: codeBlockConfig.value.disabled || selfProps.disabled || disabled.value,
1550
1517
  active: codeBlockConfig.value.active,
1551
1518
  onOperate: handleOperate
@@ -1562,7 +1529,6 @@ const MenuItem = defineComponent(
1562
1529
  title: $editTrans('sourceView'),
1563
1530
  leftBorder: sourceViewConfig.value.leftBorder,
1564
1531
  rightBorder: sourceViewConfig.value.rightBorder,
1565
- color: props.color,
1566
1532
  disabled: sourceViewConfig.value.disabled || selfProps.disabled || disabled.value,
1567
1533
  active: sourceViewConfig.value.active,
1568
1534
  onOperate: handleOperate
@@ -1579,7 +1545,6 @@ const MenuItem = defineComponent(
1579
1545
  title: $editTrans('fullScreen'),
1580
1546
  leftBorder: fullScreenConfig.value.leftBorder,
1581
1547
  rightBorder: fullScreenConfig.value.rightBorder,
1582
- color: props.color,
1583
1548
  disabled: fullScreenConfig.value.disabled || selfProps.disabled || disabled.value,
1584
1549
  active: fullScreenConfig.value.active,
1585
1550
  onOperate: handleOperate
@@ -1597,7 +1562,7 @@ const MenuItem = defineComponent(
1597
1562
  Button,
1598
1563
  {
1599
1564
  ...itemProps,
1600
- ref: 'btnRef',
1565
+ ref: btnRef,
1601
1566
  type: configuration.type || 'default',
1602
1567
  title: configuration.title || '',
1603
1568
  leftBorder: configuration.leftBorder || false,
@@ -1616,44 +1581,43 @@ const MenuItem = defineComponent(
1616
1581
  value: configuration.value,
1617
1582
  options: configuration.options
1618
1583
  },
1619
- color: props.color,
1620
1584
  onLayerShow: () => {
1621
1585
  if (typeof configuration.onLayerShow == 'function') {
1622
- configuration.onLayerShow(itemProps.name, <InstanceType<typeof Button>>itemInstance.proxy!.$refs.btnRef)
1586
+ configuration.onLayerShow(itemProps.name, btnRef.value!)
1623
1587
  }
1624
1588
  },
1625
1589
  onLayerShown: () => {
1626
1590
  if (typeof configuration.onLayerShown == 'function') {
1627
- configuration.onLayerShown(itemProps.name, <InstanceType<typeof Button>>itemInstance.proxy!.$refs.btnRef)
1591
+ configuration.onLayerShown(itemProps.name, btnRef.value!)
1628
1592
  }
1629
1593
  },
1630
1594
  onLayerHidden: () => {
1631
1595
  if (typeof configuration.onLayerHidden == 'function') {
1632
- configuration.onLayerHidden(itemProps.name, <InstanceType<typeof Button>>itemInstance.proxy!.$refs.btnRef)
1596
+ configuration.onLayerHidden(itemProps.name, btnRef.value!)
1633
1597
  }
1634
1598
  },
1635
1599
  onOperate: (name, val) => {
1636
1600
  if (typeof configuration.onOperate == 'function') {
1637
- configuration.onOperate(name, val, <InstanceType<typeof Button>>itemInstance.proxy!.$refs.btnRef)
1601
+ configuration.onOperate(name, val, btnRef.value!)
1638
1602
  }
1639
1603
  }
1640
1604
  },
1641
1605
  {
1642
1606
  default: () => {
1643
1607
  if (configuration.default) {
1644
- return configuration.default(itemProps.name, <InstanceType<typeof Button>>itemInstance.proxy!.$refs.btnRef)
1608
+ return configuration.default(itemProps.name, btnRef.value!)
1645
1609
  }
1646
1610
  return null
1647
1611
  },
1648
1612
  layer: () => {
1649
1613
  if (configuration.layer) {
1650
- return configuration.layer(itemProps.name, <InstanceType<typeof Button>>itemInstance.proxy!.$refs.btnRef)
1614
+ return configuration.layer(itemProps.name, btnRef.value!)
1651
1615
  }
1652
1616
  return null
1653
1617
  },
1654
1618
  option: () => {
1655
1619
  if (configuration.option) {
1656
- return configuration.option(itemProps.name, <InstanceType<typeof Button>>itemInstance.proxy!.$refs.btnRef)
1620
+ return configuration.option(itemProps.name, btnRef.value!)
1657
1621
  }
1658
1622
  return null
1659
1623
  }
@@ -1672,8 +1636,20 @@ const MenuItem = defineComponent(
1672
1636
  }
1673
1637
  )
1674
1638
 
1639
+ onMounted(() => {
1640
+ height.value = menuRef.value!.offsetHeight
1641
+ DapEvent.on(window, `resize.editify_menu_${instance.uid}`, () => {
1642
+ height.value = menuRef.value!.offsetHeight
1643
+ })
1644
+ })
1645
+
1646
+ onBeforeUnmount(() => {
1647
+ DapEvent.off(window, `resize.editify_menu_${instance.uid}`)
1648
+ })
1649
+
1675
1650
  defineExpose({
1676
- handleRangeUpdate
1651
+ handleRangeUpdate,
1652
+ height
1677
1653
  })
1678
1654
  </script>
1679
1655
  <style scoped src="./menu.less"></style>
@@ -11,6 +11,11 @@ export const MenuProps = {
11
11
  color: {
12
12
  type: String as PropType<string | null>,
13
13
  default: ''
14
+ },
15
+ //层级
16
+ zIndex: {
17
+ type: Number,
18
+ default: 1
14
19
  }
15
20
  }
16
21
 
@@ -12,6 +12,11 @@ export const ToolbarProps = {
12
12
  type: [String, Node] as PropType<string | HTMLElement>,
13
13
  default: null
14
14
  },
15
+ //滚动的容器元素
16
+ scrollNode: {
17
+ type: [String, Node] as PropType<string | HTMLElement>,
18
+ default: null
19
+ },
15
20
  //类型
16
21
  type: {
17
22
  type: String as PropType<'text' | 'table' | 'link' | 'codeBlock' | 'image' | 'video'>,
@@ -29,6 +34,11 @@ export const ToolbarProps = {
29
34
  color: {
30
35
  type: String as PropType<string | null>,
31
36
  default: ''
37
+ },
38
+ //层级
39
+ zIndex: {
40
+ type: Number,
41
+ default: 1
32
42
  }
33
43
  }
34
44