vue-editify 0.2.9 → 0.2.11

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.
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 +456 -386
  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 +4 -4
  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 +94 -89
  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