ele-admin-plus 1.1.9 → 1.2.0-beta.1

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 (149) hide show
  1. package/es/core-export.d.ts +1 -0
  2. package/es/core-export.js +1 -0
  3. package/es/ele-alert/index.d.ts +2 -2
  4. package/es/ele-alert/props.d.ts +1 -1
  5. package/es/ele-app/components/message-body.d.ts +39 -0
  6. package/es/ele-app/components/message-body.js +92 -0
  7. package/es/ele-app/el.d.ts +2 -0
  8. package/es/ele-app/style/message/css-var.scss +0 -4
  9. package/es/ele-app/style/message/index.scss +199 -77
  10. package/es/ele-app/style/overwrite/input/index.scss +2 -0
  11. package/es/ele-app/style/overwrite/message-box/index.scss +31 -0
  12. package/es/ele-app/style/overwrite/tag/css-var.scss +0 -16
  13. package/es/ele-app/style/overwrite/tag/index.scss +57 -14
  14. package/es/ele-app/types.d.ts +6 -1
  15. package/es/ele-config-provider/components/receiver-view.js +3 -3
  16. package/es/ele-config-provider/index.d.ts +8 -4
  17. package/es/ele-config-provider/index.js +19 -5
  18. package/es/ele-config-provider/props.d.ts +9 -4
  19. package/es/ele-config-provider/props.js +9 -5
  20. package/es/ele-config-provider/receiver.js +2 -2
  21. package/es/ele-config-provider/types.d.ts +22 -1
  22. package/es/ele-data-table/types.d.ts +2 -0
  23. package/es/ele-drawer/index.d.ts +2 -2
  24. package/es/ele-edit-tag/index.d.ts +9 -4
  25. package/es/ele-edit-tag/index.js +4 -2
  26. package/es/ele-edit-tag/props.d.ts +3 -1
  27. package/es/ele-edit-tag/props.js +2 -0
  28. package/es/ele-edit-tag/style/index.scss +11 -4
  29. package/es/ele-icon-select/index.d.ts +10 -12
  30. package/es/ele-icon-select/props.d.ts +1 -1
  31. package/es/ele-map-picker/index.d.ts +1 -1
  32. package/es/ele-menus/index.d.ts +2 -2
  33. package/es/ele-menus/index.js +11 -0
  34. package/es/ele-modal/index.d.ts +3 -3
  35. package/es/ele-modal/style/index.scss +2 -0
  36. package/es/ele-modal/util.d.ts +1 -1
  37. package/es/ele-modal/util.js +2 -4
  38. package/es/ele-popconfirm/index.d.ts +3 -3
  39. package/es/ele-popconfirm/props.d.ts +1 -1
  40. package/es/ele-popover/index.d.ts +2 -2
  41. package/es/ele-pro-layout/components/pro-header.d.ts +1 -1
  42. package/es/ele-pro-layout/components/pro-sidebar.d.ts +1 -1
  43. package/es/ele-pro-layout/index.js +1 -1
  44. package/es/ele-pro-layout/types.d.ts +4 -4
  45. package/es/ele-pro-table/components/table-tools.d.ts +11 -2
  46. package/es/ele-pro-table/components/table-tools.js +14 -26
  47. package/es/ele-pro-table/components/tool-column.d.ts +1 -0
  48. package/es/ele-pro-table/components/tool-export.d.ts +29 -56
  49. package/es/ele-pro-table/components/tool-export.js +100 -52
  50. package/es/ele-pro-table/components/tool-print-body-cell.js +50 -6
  51. package/es/ele-pro-table/components/tool-print-header-cell.js +4 -1
  52. package/es/ele-pro-table/components/tool-print.d.ts +29 -50
  53. package/es/ele-pro-table/components/tool-print.js +174 -69
  54. package/es/ele-pro-table/index.js +59 -50
  55. package/es/ele-pro-table/style/index.scss +9 -0
  56. package/es/ele-pro-table/types.d.ts +32 -0
  57. package/es/ele-pro-table/util.d.ts +18 -3
  58. package/es/ele-pro-table/util.js +160 -28
  59. package/es/ele-table/style/index.scss +16 -0
  60. package/es/ele-tooltip/index.d.ts +3 -3
  61. package/es/ele-virtual-table/util.d.ts +3 -1
  62. package/es/ele-virtual-table/util.js +7 -2
  63. package/es/icons/LoadingOutlined.js +1 -1
  64. package/es/lang/en_US.js +7 -1
  65. package/es/lang/zh_CN.js +7 -1
  66. package/es/lang/zh_TW.js +7 -1
  67. package/es/style/themes/default.scss +82 -85
  68. package/es/style/themes/rounded.scss +11 -15
  69. package/es/utils/core.d.ts +7 -0
  70. package/es/utils/core.js +16 -2
  71. package/es/utils/message-box.d.ts +25 -0
  72. package/es/utils/message-box.js +71 -0
  73. package/es/utils/message.d.ts +44 -20
  74. package/es/utils/message.js +220 -37
  75. package/lib/core-export.cjs +8 -0
  76. package/lib/core-export.d.ts +1 -0
  77. package/lib/ele-alert/index.d.ts +2 -2
  78. package/lib/ele-alert/props.d.ts +1 -1
  79. package/lib/ele-app/components/message-body.cjs +91 -0
  80. package/lib/ele-app/components/message-body.d.ts +39 -0
  81. package/lib/ele-app/el.d.ts +2 -0
  82. package/lib/ele-app/style/message/css-var.scss +0 -4
  83. package/lib/ele-app/style/message/index.scss +199 -77
  84. package/lib/ele-app/style/overwrite/input/index.scss +2 -0
  85. package/lib/ele-app/style/overwrite/message-box/index.scss +31 -0
  86. package/lib/ele-app/style/overwrite/tag/css-var.scss +0 -16
  87. package/lib/ele-app/style/overwrite/tag/index.scss +57 -14
  88. package/lib/ele-app/types.d.ts +6 -1
  89. package/lib/ele-config-provider/components/receiver-view.cjs +1 -1
  90. package/lib/ele-config-provider/index.cjs +18 -4
  91. package/lib/ele-config-provider/index.d.ts +8 -4
  92. package/lib/ele-config-provider/props.cjs +9 -5
  93. package/lib/ele-config-provider/props.d.ts +9 -4
  94. package/lib/ele-config-provider/receiver.cjs +1 -1
  95. package/lib/ele-config-provider/types.d.ts +22 -1
  96. package/lib/ele-data-table/types.d.ts +2 -0
  97. package/lib/ele-drawer/index.d.ts +2 -2
  98. package/lib/ele-edit-tag/index.cjs +4 -2
  99. package/lib/ele-edit-tag/index.d.ts +9 -4
  100. package/lib/ele-edit-tag/props.cjs +2 -0
  101. package/lib/ele-edit-tag/props.d.ts +3 -1
  102. package/lib/ele-edit-tag/style/index.scss +11 -4
  103. package/lib/ele-icon-select/index.d.ts +10 -12
  104. package/lib/ele-icon-select/props.d.ts +1 -1
  105. package/lib/ele-map-picker/index.d.ts +1 -1
  106. package/lib/ele-menus/index.cjs +11 -0
  107. package/lib/ele-menus/index.d.ts +2 -2
  108. package/lib/ele-modal/index.d.ts +3 -3
  109. package/lib/ele-modal/style/index.scss +2 -0
  110. package/lib/ele-modal/util.cjs +1 -3
  111. package/lib/ele-modal/util.d.ts +1 -1
  112. package/lib/ele-popconfirm/index.d.ts +3 -3
  113. package/lib/ele-popconfirm/props.d.ts +1 -1
  114. package/lib/ele-popover/index.d.ts +2 -2
  115. package/lib/ele-pro-layout/components/pro-header.d.ts +1 -1
  116. package/lib/ele-pro-layout/components/pro-sidebar.d.ts +1 -1
  117. package/lib/ele-pro-layout/index.cjs +1 -1
  118. package/lib/ele-pro-layout/types.d.ts +4 -4
  119. package/lib/ele-pro-table/components/table-tools.cjs +14 -26
  120. package/lib/ele-pro-table/components/table-tools.d.ts +11 -2
  121. package/lib/ele-pro-table/components/tool-column.d.ts +1 -0
  122. package/lib/ele-pro-table/components/tool-export.cjs +99 -51
  123. package/lib/ele-pro-table/components/tool-export.d.ts +29 -56
  124. package/lib/ele-pro-table/components/tool-print-body-cell.cjs +49 -5
  125. package/lib/ele-pro-table/components/tool-print-header-cell.cjs +4 -1
  126. package/lib/ele-pro-table/components/tool-print.cjs +172 -67
  127. package/lib/ele-pro-table/components/tool-print.d.ts +29 -50
  128. package/lib/ele-pro-table/index.cjs +59 -50
  129. package/lib/ele-pro-table/style/index.scss +9 -0
  130. package/lib/ele-pro-table/types.d.ts +32 -0
  131. package/lib/ele-pro-table/util.cjs +160 -28
  132. package/lib/ele-pro-table/util.d.ts +18 -3
  133. package/lib/ele-table/style/index.scss +16 -0
  134. package/lib/ele-tooltip/index.d.ts +3 -3
  135. package/lib/ele-virtual-table/util.cjs +7 -2
  136. package/lib/ele-virtual-table/util.d.ts +3 -1
  137. package/lib/icons/LoadingOutlined.cjs +1 -1
  138. package/lib/lang/en_US.cjs +7 -1
  139. package/lib/lang/zh_CN.cjs +7 -1
  140. package/lib/lang/zh_TW.cjs +7 -1
  141. package/lib/style/themes/default.scss +82 -85
  142. package/lib/style/themes/rounded.scss +11 -15
  143. package/lib/utils/core.cjs +16 -2
  144. package/lib/utils/core.d.ts +7 -0
  145. package/lib/utils/message-box.cjs +71 -0
  146. package/lib/utils/message-box.d.ts +25 -0
  147. package/lib/utils/message.cjs +216 -33
  148. package/lib/utils/message.d.ts +44 -20
  149. package/package.json +14 -14
@@ -123,6 +123,7 @@ $ele: map.deep-merge(
123
123
  // 消息提示
124
124
  'color': elVar('text-color', 'regular'),
125
125
  'size': elVar('font-size', 'base'),
126
+ 'space': 16px,
126
127
  'padding': 12px 14px,
127
128
  'radius': elVar('border-radius', 'base'),
128
129
  'shadow': elVar('box-shadow', 'light'),
@@ -135,12 +136,9 @@ $ele: map.deep-merge(
135
136
  'close-color': elVar('text-color', 'placeholder'),
136
137
  'close-hover-color': elVar('text-color', 'primary'),
137
138
  'close-hover-bg': transparent,
138
- 'plain-bg': elVar('bg-color', 'overlay')
139
- ),
140
- 'message-mask': (
141
- // 消息提示遮罩层
142
- 'color': elVar('overlay-color', 'lighter'),
143
- 'size': 1000vw
139
+ 'plain-bg': elVar('bg-color', 'overlay'),
140
+ 'alert-padding': 10px 14px,
141
+ 'mask-color': elVar('overlay-color', 'lighter')
144
142
  ),
145
143
  'bottom-bar': (
146
144
  // 底部工具栏
@@ -971,85 +969,84 @@ $ele: map.deep-merge(
971
969
  'danger-border-color': elVar('color-error', 'light-7'),
972
970
  'danger-close-color': elVar('color-error'),
973
971
  'danger-close-hover-color': elVar('color-error'),
974
- 'danger-close-hover-bg': transparent
975
- ),
976
- 'tag-sm': (
977
- // 标签小尺寸
978
- 'size': 12px,
979
- 'height': 20px,
980
- 'padding': 0 4px,
981
- 'radius': elVar('border-radius', 'small'),
982
- 'close-size': 13px,
983
- 'close-padding': 0,
984
- 'close-margin': 0 -2px 0 2px,
985
- 'close-radius': 2px
986
- ),
987
- 'tag-lg': (
988
- // 标签大尺寸
989
- 'size': 14px,
990
- 'height': 32px,
991
- 'padding': 0 12px,
992
- 'radius': elVar('border-radius', 'base'),
993
- 'close-size': 15px,
994
- 'close-padding': 2px,
995
- 'close-margin': 0 -8px 0 4px,
996
- 'close-radius': 4px
997
- ),
998
- 'tag-dark': (
999
- // 标签暗色风格
1000
- 'color': #fff,
1001
- 'bg': elVar('color-primary'),
1002
- 'close-color': #fff,
1003
- 'close-hover-color': #fff,
1004
- 'close-hover-bg': transparent,
1005
- 'info-color': elVar('text-color', 'primary'),
1006
- 'info-bg': elVar('color-info', 'light-7'),
1007
- 'info-close-color': elVar('text-color', 'secondary'),
1008
- 'info-close-hover-color': elVar('text-color', 'primary'),
1009
- 'info-close-hover-bg': transparent,
1010
- 'success-color': #fff,
1011
- 'success-bg': elVar('color-success'),
1012
- 'success-close-color': #fff,
1013
- 'success-close-hover-color': #fff,
1014
- 'success-close-hover-bg': transparent,
1015
- 'warning-color': #fff,
1016
- 'warning-bg': elVar('color-warning'),
1017
- 'warning-close-color': #fff,
1018
- 'warning-close-hover-color': #fff,
1019
- 'warning-close-hover-bg': transparent,
1020
- 'danger-color': #fff,
1021
- 'danger-bg': elVar('color-error'),
1022
- 'danger-close-color': #fff,
1023
- 'danger-close-hover-color': #fff,
1024
- 'danger-close-hover-bg': transparent
1025
- ),
1026
- 'tag-plain': (
1027
- // 标签朴素风格
1028
- 'color': elVar('color-primary'),
1029
- 'border-color': elVar('color-primary'),
1030
- 'close-color': elVar('color-primary'),
1031
- 'close-hover-color': elVar('color-primary'),
1032
- 'close-hover-bg': transparent,
1033
- 'info-color': elVar('text-color', 'regular'),
1034
- 'info-border-color': elVar('color-info', 'light-3'),
1035
- 'info-close-color': elVar('text-color', 'secondary'),
1036
- 'info-close-hover-color': elVar('text-color', 'primary'),
1037
- 'info-close-hover-bg': transparent,
1038
- 'success-color': elVar('color-success'),
1039
- 'success-border-color': elVar('color-success'),
1040
- 'success-close-color': elVar('color-success'),
1041
- 'success-close-hover-color': elVar('color-success'),
1042
- 'success-close-hover-bg': transparent,
1043
- 'warning-color': elVar('color-warning'),
1044
- 'warning-border-color': elVar('color-warning'),
1045
- 'warning-close-color': elVar('color-warning'),
1046
- 'warning-close-hover-color': elVar('color-warning'),
1047
- 'warning-close-hover-bg': transparent,
1048
- 'danger-color': elVar('color-error'),
1049
- 'danger-border-color': elVar('color-error'),
1050
- 'danger-close-color': elVar('color-error'),
1051
- 'danger-close-hover-color': elVar('color-error'),
1052
- 'danger-close-hover-bg': transparent
972
+ 'danger-close-hover-bg': transparent,
973
+ 'round-radius': 12px,
974
+ 'round-padding': 0 10px,
975
+ 'sm-size': 12px,
976
+ 'sm-height': 20px,
977
+ 'sm-padding': 0 4px,
978
+ 'sm-radius': elVar('border-radius', 'small'),
979
+ 'sm-close-size': 13px,
980
+ 'sm-close-padding': 0,
981
+ 'sm-close-margin': 0 -2px 0 2px,
982
+ 'sm-close-radius': 2px,
983
+ 'sm-round-radius': 10px,
984
+ 'sm-round-padding': 0 6px,
985
+ 'lg-size': 14px,
986
+ 'lg-height': 32px,
987
+ 'lg-padding': 0 12px,
988
+ 'lg-radius': elVar('border-radius', 'base'),
989
+ 'lg-close-size': 15px,
990
+ 'lg-close-padding': 2px,
991
+ 'lg-close-margin': 0 -8px 0 4px,
992
+ 'lg-close-radius': 4px,
993
+ 'lg-round-radius': 16px,
994
+ 'lg-round-padding': 0 14px,
995
+ 'dark-color': #fff,
996
+ 'dark-bg': elVar('color-primary'),
997
+ 'dark-close-color': #fff,
998
+ 'dark-close-hover-color': #fff,
999
+ 'dark-close-hover-bg': transparent,
1000
+ 'dark-info-color': elVar('text-color', 'primary'),
1001
+ 'dark-info-bg': elVar('color-info', 'light-7'),
1002
+ 'dark-info-close-color': elVar('text-color', 'secondary'),
1003
+ 'dark-info-close-hover-color': elVar('text-color', 'primary'),
1004
+ 'dark-info-close-hover-bg': transparent,
1005
+ 'dark-success-color': #fff,
1006
+ 'dark-success-bg': elVar('color-success'),
1007
+ 'dark-success-close-color': #fff,
1008
+ 'dark-success-close-hover-color': #fff,
1009
+ 'dark-success-close-hover-bg': transparent,
1010
+ 'dark-warning-color': #fff,
1011
+ 'dark-warning-bg': elVar('color-warning'),
1012
+ 'dark-warning-close-color': #fff,
1013
+ 'dark-warning-close-hover-color': #fff,
1014
+ 'dark-warning-close-hover-bg': transparent,
1015
+ 'dark-danger-color': #fff,
1016
+ 'dark-danger-bg': elVar('color-error'),
1017
+ 'dark-danger-close-color': #fff,
1018
+ 'dark-danger-close-hover-color': #fff,
1019
+ 'dark-danger-close-hover-bg': transparent,
1020
+ 'plain-color': elVar('color-primary'),
1021
+ 'plain-border-color': elVar('color-primary'),
1022
+ 'plain-close-color': elVar('color-primary'),
1023
+ 'plain-close-hover-color': elVar('color-primary'),
1024
+ 'plain-close-hover-bg': transparent,
1025
+ 'plain-info-color': elVar('text-color', 'regular'),
1026
+ 'plain-info-border-color': elVar('color-info', 'light-3'),
1027
+ 'plain-info-close-color': elVar('text-color', 'secondary'),
1028
+ 'plain-info-close-hover-color': elVar('text-color', 'primary'),
1029
+ 'plain-info-close-hover-bg': transparent,
1030
+ 'plain-success-color': elVar('color-success'),
1031
+ 'plain-success-border-color': elVar('color-success'),
1032
+ 'plain-success-close-color': elVar('color-success'),
1033
+ 'plain-success-close-hover-color': elVar('color-success'),
1034
+ 'plain-success-close-hover-bg': transparent,
1035
+ 'plain-warning-color': elVar('color-warning'),
1036
+ 'plain-warning-border-color': elVar('color-warning'),
1037
+ 'plain-warning-close-color': elVar('color-warning'),
1038
+ 'plain-warning-close-hover-color': elVar('color-warning'),
1039
+ 'plain-warning-close-hover-bg': transparent,
1040
+ 'plain-danger-color': elVar('color-error'),
1041
+ 'plain-danger-border-color': elVar('color-error'),
1042
+ 'plain-danger-close-color': elVar('color-error'),
1043
+ 'plain-danger-close-hover-color': elVar('color-error'),
1044
+ 'plain-danger-close-hover-bg': transparent,
1045
+ 'hit-border-color': elVar('color-primary'),
1046
+ 'hit-info-border-color': elVar('color-info', 'light-3'),
1047
+ 'hit-success-border-color': elVar('color-success'),
1048
+ 'hit-warning-border-color': elVar('color-warning'),
1049
+ 'hit-danger-border-color': elVar('color-error')
1053
1050
  ),
1054
1051
  'tree': (
1055
1052
  // 树
@@ -218,21 +218,17 @@ $ele-rounded: map.deep-merge(
218
218
  'info-close-hover-bg': hsla(0, 0%, 60%, 0.25),
219
219
  'success-close-hover-bg': elVar('color-success', 'light-8'),
220
220
  'warning-close-hover-bg': elVar('color-warning', 'light-8'),
221
- 'danger-close-hover-bg': elVar('color-error', 'light-8')
222
- ),
223
- 'tag-dark': (
224
- 'close-hover-bg': rgba(255, 255, 255, 0.2),
225
- 'info-close-hover-bg': hsla(0, 0%, 60%, 0.25),
226
- 'success-close-hover-bg': rgba(255, 255, 255, 0.2),
227
- 'warning-close-hover-bg': rgba(255, 255, 255, 0.2),
228
- 'danger-close-hover-bg': rgba(255, 255, 255, 0.2)
229
- ),
230
- 'tag-plain': (
231
- 'close-hover-bg': elVar('color-primary', 'light-8'),
232
- 'info-close-hover-bg': hsla(0, 0%, 60%, 0.25),
233
- 'success-close-hover-bg': elVar('color-success', 'light-8'),
234
- 'warning-close-hover-bg': elVar('color-warning', 'light-8'),
235
- 'danger-close-hover-bg': elVar('color-error', 'light-8')
221
+ 'danger-close-hover-bg': elVar('color-error', 'light-8'),
222
+ 'dark-close-hover-bg': rgba(255, 255, 255, 0.2),
223
+ 'dark-info-close-hover-bg': hsla(0, 0%, 60%, 0.25),
224
+ 'dark-success-close-hover-bg': rgba(255, 255, 255, 0.2),
225
+ 'dark-warning-close-hover-bg': rgba(255, 255, 255, 0.2),
226
+ 'dark-danger-close-hover-bg': rgba(255, 255, 255, 0.2),
227
+ 'plain-close-hover-bg': elVar('color-primary', 'light-8'),
228
+ 'plain-info-close-hover-bg': hsla(0, 0%, 60%, 0.25),
229
+ 'plain-success-close-hover-bg': elVar('color-success', 'light-8'),
230
+ 'plain-warning-close-hover-bg': elVar('color-warning', 'light-8'),
231
+ 'plain-danger-close-hover-bg': elVar('color-error', 'light-8')
236
232
  ),
237
233
  'tree': (
238
234
  'item-margin': 2px,
@@ -142,3 +142,10 @@ export declare function pick<T extends object, K extends keyof T>(obj: T, fields
142
142
  * @param el 元素节点
143
143
  */
144
144
  export declare function contentIsEllipsis(el: HTMLElement, direction?: 'horizontal' | 'vertical'): boolean;
145
+ /**
146
+ * 查找子元素
147
+ * @param parentEl 父元素
148
+ * @param className 类名
149
+ * @param attr 属性
150
+ */
151
+ export declare function queryChild(parentEl: Element, className?: string, attr?: string[]): Element | undefined;
package/es/utils/core.js CHANGED
@@ -221,9 +221,9 @@ function contentIsEllipsis(el, direction) {
221
221
  range.setEnd(el, el.childNodes.length);
222
222
  const { width, height } = range.getBoundingClientRect();
223
223
  const floorW = Math.floor(width);
224
- const rangeWidth = width - floorW < 1e-3 ? floorW : width;
224
+ const rangeWidth = width - floorW < 8e-3 ? floorW : width;
225
225
  const floorH = Math.floor(height);
226
- const rangeHeight = height - floorH < 1e-3 ? floorH : height;
226
+ const rangeHeight = height - floorH < 8e-3 ? floorH : height;
227
227
  const style = getCurrentStyle(el);
228
228
  const top = Number.parseInt(style.paddingTop) || 0;
229
229
  const left = Number.parseInt(style.paddingLeft) || 0;
@@ -239,6 +239,19 @@ function contentIsEllipsis(el, direction) {
239
239
  }
240
240
  return rangeWidth + horizontalPadding > el.offsetWidth || rangeHeight + verticalPadding > el.offsetHeight || el.scrollWidth > el.offsetWidth;
241
241
  }
242
+ function queryChild(parentEl, className, attr) {
243
+ return Array.from(parentEl.children).find((el) => {
244
+ if (className && !el.classList.contains(className)) {
245
+ return false;
246
+ }
247
+ if (attr != null && attr[0] != null) {
248
+ if (el.getAttribute(attr[0]) != attr[1]) {
249
+ return false;
250
+ }
251
+ }
252
+ return true;
253
+ });
254
+ }
242
255
  export {
243
256
  assignObject,
244
257
  bd09ToGcj02,
@@ -255,6 +268,7 @@ export {
255
268
  mapTree,
256
269
  omit,
257
270
  pick,
271
+ queryChild,
258
272
  random,
259
273
  requestFullscreen,
260
274
  throttle,
@@ -0,0 +1,25 @@
1
+ import { ElMessageBoxOptions, MessageBoxData as ElMessageBoxData } from 'element-plus';
2
+ import { AppContext } from 'vue';
3
+
4
+ /**
5
+ * 消息弹窗配置
6
+ */
7
+ export interface MessageBoxOptions extends ElMessageBoxOptions {
8
+ /** 是否限制在主体内部 */
9
+ inner?: boolean;
10
+ }
11
+ /**
12
+ * 消息弹窗方法
13
+ */
14
+ export type MessageBoxMethod = (message: ElMessageBoxOptions['message'], title: ElMessageBoxOptions['title'], options?: MessageBoxOptions, context?: AppContext | null) => Promise<ElMessageBoxData>;
15
+ /**
16
+ * 消息弹窗
17
+ */
18
+ export interface MessageBox {
19
+ (options?: MessageBoxOptions, context?: AppContext | null): Promise<ElMessageBoxData>;
20
+ alert: MessageBoxMethod;
21
+ confirm: MessageBoxMethod;
22
+ prompt: MessageBoxMethod;
23
+ close: () => void;
24
+ }
25
+ export declare function useMessageBox(globalOpt?: MessageBoxOptions): MessageBox;
@@ -0,0 +1,71 @@
1
+ import { getCurrentInstance, onActivated, onDeactivated } from "vue";
2
+ import { ElMessageBox } from "element-plus";
3
+ import { useLayoutState, useGlobalProps } from "../ele-config-provider/receiver";
4
+ import { omit, queryChild } from "./core";
5
+ function getWrapEl(bodyEl) {
6
+ const parent = bodyEl || document.body;
7
+ const className = "ele-message-box-wrapper";
8
+ const el = queryChild(parent, className);
9
+ if (el != null) {
10
+ return el;
11
+ }
12
+ const elem = document.createElement("div");
13
+ elem.classList.add(className);
14
+ parent.appendChild(elem);
15
+ return elem;
16
+ }
17
+ function useMessageBox(globalOpt) {
18
+ var _a, _b;
19
+ const layoutState = useLayoutState();
20
+ const globalProps = useGlobalProps("messageBox");
21
+ const appContext = (_b = (_a = getCurrentInstance) == null ? void 0 : _a()) == null ? void 0 : _b.appContext;
22
+ const state = { wrapEl: null, isActivated: true };
23
+ const hideClass = "is-hide";
24
+ onActivated(() => {
25
+ state.isActivated = true;
26
+ state.wrapEl && state.wrapEl.classList.remove(hideClass);
27
+ });
28
+ onDeactivated(() => {
29
+ state.isActivated = false;
30
+ state.wrapEl && state.wrapEl.classList.add(hideClass);
31
+ });
32
+ const getOption = (options) => {
33
+ const opt = {
34
+ ...globalProps.value || {},
35
+ ...globalOpt || {},
36
+ ...options || {}
37
+ };
38
+ if (opt.inner) {
39
+ if (opt.appendTo == null && layoutState.modalsEl != null) {
40
+ if (state.wrapEl == null) {
41
+ state.wrapEl = getWrapEl(layoutState.modalsEl);
42
+ }
43
+ opt.appendTo = state.wrapEl;
44
+ }
45
+ opt.lockScroll = false;
46
+ }
47
+ return omit(opt, ["inner"]);
48
+ };
49
+ const messageBox = function(options) {
50
+ return ElMessageBox(getOption(options), appContext);
51
+ };
52
+ messageBox.alert = function(message, title, options, context) {
53
+ const ctx = context ?? appContext;
54
+ return ElMessageBox.alert(message, title, getOption(options), ctx);
55
+ };
56
+ messageBox.confirm = function(message, title, options, context) {
57
+ const ctx = context ?? appContext;
58
+ return ElMessageBox.confirm(message, title, getOption(options), ctx);
59
+ };
60
+ messageBox.prompt = function(message, title, options, context) {
61
+ const ctx = context ?? appContext;
62
+ return ElMessageBox.prompt(message, title, getOption(options), ctx);
63
+ };
64
+ messageBox.close = function() {
65
+ return ElMessageBox.close();
66
+ };
67
+ return messageBox;
68
+ }
69
+ export {
70
+ useMessageBox
71
+ };
@@ -1,42 +1,66 @@
1
- import { MessageHandler, MessageOptions, MessageParams, MessageFn } from 'element-plus/es/components/message';
2
- import { AppContext } from 'vue';
1
+ import { MessageHandler as ElMessageHandler, MessageOptions as ElMessageOptions, MessageFn as ElMessageFn } from 'element-plus/es/components/message';
2
+ import { AppContext, InjectionKey } from 'vue';
3
3
 
4
4
  /**
5
- * 消息提示对象型参数
5
+ * 消息提示配置
6
6
  */
7
- export interface ProMessageOptions extends Omit<MessageOptions, 'plain'> {
7
+ export interface MessageOptions extends ElMessageOptions {
8
8
  /** 是否为原始风格 */
9
- original?: boolean | null;
10
- /** 是否为简约风格 */
11
- plain?: boolean | null;
9
+ original?: boolean | 'plain';
12
10
  /** 是否显示遮罩层 */
13
- mask?: boolean | null;
11
+ mask?: boolean;
14
12
  /** 是否居中显示 */
15
- centered?: boolean | null;
13
+ centered?: boolean;
14
+ /** 是否限制在主体内部 */
15
+ inner?: boolean;
16
+ /** 限制在主体内部的分组标识 */
17
+ groupKey?: string;
16
18
  }
17
19
  /**
18
- * 消息提示参数
20
+ * 消息提示方法参数
19
21
  */
20
- export type ProMessageParams = ProMessageOptions | MessageParams;
22
+ export type MessageParams = MessageOptions | ElMessageOptions['message'];
21
23
  /**
22
24
  * 消息提示方法
23
25
  */
24
- export type ProMessageFn = (options?: ProMessageParams, context?: null | AppContext) => MessageHandler;
26
+ export type MessageFn = (options?: MessageParams, context?: null | AppContext) => ElMessageHandler;
25
27
  /**
26
28
  * 消息提示
27
29
  */
28
- export interface ProMessage extends ProMessageFn {
29
- closeAll: MessageFn['closeAll'];
30
- success: ProMessageFn;
31
- warning: ProMessageFn;
32
- error: ProMessageFn;
33
- info: ProMessageFn;
34
- loading: ProMessageFn;
30
+ export interface Message extends MessageFn {
31
+ closeAll: ElMessageFn['closeAll'];
32
+ success: MessageFn;
33
+ warning: MessageFn;
34
+ error: MessageFn;
35
+ info: MessageFn;
36
+ loading: MessageFn;
35
37
  }
38
+ /**
39
+ * 消息提示依赖注入
40
+ */
41
+ interface MessageProvide {
42
+ /** 限制在主体内部的分组标识 */
43
+ groupKey: string;
44
+ /** 获取限制在主体内部的容器 */
45
+ getInnerWrap: () => HTMLElement;
46
+ }
47
+ /**
48
+ * 消息提示依赖注入key
49
+ */
50
+ type MessageKey = InjectionKey<MessageProvide>;
36
51
  /**
37
52
  * 提供各种调用方法
38
53
  * @param options 参数
39
54
  * @param context 上下文
40
55
  */
41
- declare const EleMessage: ProMessage;
56
+ declare const EleMessage: Message;
42
57
  export { EleMessage };
58
+ /**
59
+ * 消息提示依赖注入key
60
+ */
61
+ export declare const MESSAGE_KEY: MessageKey;
62
+ /**
63
+ * 带当前上下文的消息提示
64
+ * @param options 参数
65
+ */
66
+ export declare function useMessage(globalOpt?: MessageOptions): Message;