ele-admin-plus 1.4.1-beta.1 → 1.4.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 (224) hide show
  1. package/es/core-components.d.ts +2 -0
  2. package/es/core-components.js +104 -100
  3. package/es/ele-app/plus.d.ts +9 -1
  4. package/es/ele-app/plusx.d.ts +26 -13
  5. package/es/ele-backtop/index.js +7 -1
  6. package/es/ele-basic-select/components/select-view.d.ts +53 -22
  7. package/es/ele-basic-select/components/select-view.js +57 -20
  8. package/es/ele-basic-select/index.d.ts +39 -19
  9. package/es/ele-basic-select/index.js +62 -13
  10. package/es/ele-basic-select/props.d.ts +33 -21
  11. package/es/ele-basic-select/props.js +33 -21
  12. package/es/ele-basic-select/style/index.js +2 -0
  13. package/es/ele-basic-select/types.d.ts +1 -1
  14. package/es/ele-config-provider/components/receiver-view.d.ts +2 -0
  15. package/es/ele-config-provider/components/receiver-view.js +74 -72
  16. package/es/ele-config-provider/receiver.d.ts +2 -2
  17. package/es/ele-config-provider/receiver.js +5 -1
  18. package/es/ele-config-provider/types.d.ts +10 -1
  19. package/es/ele-copyable/index.d.ts +2 -4
  20. package/es/ele-cron-builder/index.d.ts +24 -0
  21. package/es/ele-cron-builder/index.js +81 -0
  22. package/es/ele-cron-builder/props.d.ts +31 -0
  23. package/es/ele-cron-builder/props.js +24 -0
  24. package/es/ele-cron-builder/style/index.d.ts +1 -0
  25. package/es/ele-cron-builder/style/index.js +4 -0
  26. package/es/ele-cron-builder/style/index.scss +6 -0
  27. package/es/ele-cron-builder/types.d.ts +8 -0
  28. package/es/ele-cron-panel/components/cron-day.d.ts +25 -0
  29. package/es/ele-cron-panel/components/cron-day.js +232 -0
  30. package/es/ele-cron-panel/components/cron-hour.d.ts +25 -0
  31. package/es/ele-cron-panel/components/cron-hour.js +174 -0
  32. package/es/ele-cron-panel/components/cron-minute.d.ts +25 -0
  33. package/es/ele-cron-panel/components/cron-minute.js +174 -0
  34. package/es/ele-cron-panel/components/cron-month.d.ts +25 -0
  35. package/es/ele-cron-panel/components/cron-month.js +174 -0
  36. package/es/ele-cron-panel/components/cron-second.d.ts +25 -0
  37. package/es/ele-cron-panel/components/cron-second.js +174 -0
  38. package/es/ele-cron-panel/components/cron-week.d.ts +25 -0
  39. package/es/ele-cron-panel/components/cron-week.js +229 -0
  40. package/es/ele-cron-panel/components/cron-year.d.ts +25 -0
  41. package/es/ele-cron-panel/components/cron-year.js +186 -0
  42. package/es/ele-cron-panel/index.d.ts +14 -0
  43. package/es/ele-cron-panel/index.js +348 -0
  44. package/es/ele-cron-panel/props.d.ts +20 -0
  45. package/es/ele-cron-panel/props.js +14 -0
  46. package/es/ele-cron-panel/style/index.d.ts +1 -0
  47. package/es/ele-cron-panel/style/index.js +7 -0
  48. package/es/ele-cron-panel/style/index.scss +282 -0
  49. package/es/ele-cron-panel/types.d.ts +118 -0
  50. package/es/ele-cron-panel/util.d.ts +23 -0
  51. package/es/ele-cron-panel/util.js +542 -0
  52. package/es/ele-cropper/components/cropper-tools.d.ts +2 -2
  53. package/es/ele-cropper-modal/index.d.ts +2 -4
  54. package/es/ele-crud/index.d.ts +3 -3
  55. package/es/ele-drawer/index.d.ts +9 -0
  56. package/es/ele-drawer/index.js +5 -1
  57. package/es/ele-drawer/props.d.ts +5 -0
  58. package/es/ele-drawer/props.js +6 -1
  59. package/es/ele-drawer/style/index.scss +11 -0
  60. package/es/ele-file-list/index.d.ts +3 -3
  61. package/es/ele-icon-select/components/icon-grid.d.ts +8 -3
  62. package/es/ele-icon-select/components/icon-grid.js +20 -12
  63. package/es/ele-icon-select/index.d.ts +58 -59
  64. package/es/ele-icon-select/index.js +92 -86
  65. package/es/ele-icon-select/props.d.ts +35 -35
  66. package/es/ele-icon-select/props.js +34 -34
  67. package/es/ele-icon-select/style/css-var.scss +1 -1
  68. package/es/ele-icon-select/style/index.scss +50 -18
  69. package/es/ele-icon-select/types.d.ts +13 -0
  70. package/es/ele-map-picker/index.d.ts +3 -3
  71. package/es/ele-modal/index.d.ts +4 -2
  72. package/es/ele-modal/index.js +9 -3
  73. package/es/ele-modal/props.d.ts +2 -0
  74. package/es/ele-modal/props.js +2 -0
  75. package/es/ele-modal/style/index.scss +16 -0
  76. package/es/ele-pro-form/components/item-type-data.js +39 -64
  77. package/es/ele-pro-form/index.d.ts +3 -3
  78. package/es/ele-pro-table/components/table-tools.d.ts +12 -97
  79. package/es/ele-pro-table/components/table-tools.js +118 -248
  80. package/es/ele-pro-table/components/tool-export.d.ts +5 -1
  81. package/es/ele-pro-table/components/tool-export.js +32 -20
  82. package/es/ele-pro-table/components/tool-print.d.ts +5 -1
  83. package/es/ele-pro-table/components/tool-print.js +37 -25
  84. package/es/ele-pro-table/exceljs-plugin.d.ts +12 -0
  85. package/es/ele-pro-table/exceljs-plugin.js +81 -0
  86. package/es/ele-pro-table/index.d.ts +6 -7
  87. package/es/ele-pro-table/index.js +117 -46
  88. package/es/ele-pro-table/types.d.ts +11 -0
  89. package/es/ele-split-panel/style/index.scss +1 -1
  90. package/es/ele-table-select/index.d.ts +2 -0
  91. package/es/ele-table-select/props.d.ts +2 -0
  92. package/es/ele-table-select/props.js +3 -1
  93. package/es/ele-tour/index.d.ts +3 -3
  94. package/es/ele-tree-select/index.d.ts +2 -0
  95. package/es/ele-upload-list/index.d.ts +3 -3
  96. package/es/ele-upload-list/index.js +25 -8
  97. package/es/ele-virtual-table/components/body-cell.d.ts +1 -1
  98. package/es/ele-watermark/index.d.ts +20 -7
  99. package/es/ele-watermark/index.js +253 -94
  100. package/es/ele-watermark/props.d.ts +10 -3
  101. package/es/ele-watermark/props.js +10 -3
  102. package/es/ele-watermark/types.d.ts +12 -0
  103. package/es/ele-watermark/util.d.ts +2 -9
  104. package/es/ele-watermark/util.js +10 -19
  105. package/es/lang/en_US.js +116 -0
  106. package/es/lang/zh_CN.js +116 -0
  107. package/es/lang/zh_TW.js +116 -0
  108. package/es/style/plus.scss +3 -1
  109. package/es/style/themes/default.scss +12 -3
  110. package/es/style/themes/rounded.scss +2 -1
  111. package/es/utils/theme-util.d.ts +1 -1
  112. package/lib/core-components.cjs +104 -100
  113. package/lib/core-components.d.ts +2 -0
  114. package/lib/ele-app/plus.d.ts +9 -1
  115. package/lib/ele-app/plusx.d.ts +26 -13
  116. package/lib/ele-backtop/index.cjs +6 -0
  117. package/lib/ele-basic-select/components/select-view.cjs +56 -19
  118. package/lib/ele-basic-select/components/select-view.d.ts +53 -22
  119. package/lib/ele-basic-select/index.cjs +61 -12
  120. package/lib/ele-basic-select/index.d.ts +39 -19
  121. package/lib/ele-basic-select/props.cjs +33 -21
  122. package/lib/ele-basic-select/props.d.ts +33 -21
  123. package/lib/ele-basic-select/style/index.cjs +2 -0
  124. package/lib/ele-basic-select/types.d.ts +1 -1
  125. package/lib/ele-config-provider/components/receiver-view.cjs +2 -2
  126. package/lib/ele-config-provider/components/receiver-view.d.ts +2 -0
  127. package/lib/ele-config-provider/receiver.cjs +5 -1
  128. package/lib/ele-config-provider/receiver.d.ts +2 -2
  129. package/lib/ele-config-provider/types.d.ts +10 -1
  130. package/lib/ele-copyable/index.d.ts +2 -4
  131. package/lib/ele-cron-builder/index.cjs +80 -0
  132. package/lib/ele-cron-builder/index.d.ts +24 -0
  133. package/lib/ele-cron-builder/props.cjs +24 -0
  134. package/lib/ele-cron-builder/props.d.ts +31 -0
  135. package/lib/ele-cron-builder/style/index.cjs +5 -0
  136. package/lib/ele-cron-builder/style/index.d.ts +1 -0
  137. package/lib/ele-cron-builder/style/index.scss +6 -0
  138. package/lib/ele-cron-builder/types.d.ts +8 -0
  139. package/lib/ele-cron-panel/components/cron-day.cjs +231 -0
  140. package/lib/ele-cron-panel/components/cron-day.d.ts +25 -0
  141. package/lib/ele-cron-panel/components/cron-hour.cjs +173 -0
  142. package/lib/ele-cron-panel/components/cron-hour.d.ts +25 -0
  143. package/lib/ele-cron-panel/components/cron-minute.cjs +173 -0
  144. package/lib/ele-cron-panel/components/cron-minute.d.ts +25 -0
  145. package/lib/ele-cron-panel/components/cron-month.cjs +173 -0
  146. package/lib/ele-cron-panel/components/cron-month.d.ts +25 -0
  147. package/lib/ele-cron-panel/components/cron-second.cjs +173 -0
  148. package/lib/ele-cron-panel/components/cron-second.d.ts +25 -0
  149. package/lib/ele-cron-panel/components/cron-week.cjs +228 -0
  150. package/lib/ele-cron-panel/components/cron-week.d.ts +25 -0
  151. package/lib/ele-cron-panel/components/cron-year.cjs +185 -0
  152. package/lib/ele-cron-panel/components/cron-year.d.ts +25 -0
  153. package/lib/ele-cron-panel/index.cjs +347 -0
  154. package/lib/ele-cron-panel/index.d.ts +14 -0
  155. package/lib/ele-cron-panel/props.cjs +14 -0
  156. package/lib/ele-cron-panel/props.d.ts +20 -0
  157. package/lib/ele-cron-panel/style/index.cjs +8 -0
  158. package/lib/ele-cron-panel/style/index.d.ts +1 -0
  159. package/lib/ele-cron-panel/style/index.scss +282 -0
  160. package/lib/ele-cron-panel/types.d.ts +118 -0
  161. package/lib/ele-cron-panel/util.cjs +542 -0
  162. package/lib/ele-cron-panel/util.d.ts +23 -0
  163. package/lib/ele-cropper/components/cropper-tools.d.ts +2 -2
  164. package/lib/ele-cropper-modal/index.d.ts +2 -4
  165. package/lib/ele-crud/index.d.ts +3 -3
  166. package/lib/ele-drawer/index.cjs +4 -0
  167. package/lib/ele-drawer/index.d.ts +9 -0
  168. package/lib/ele-drawer/props.cjs +6 -1
  169. package/lib/ele-drawer/props.d.ts +5 -0
  170. package/lib/ele-drawer/style/index.scss +11 -0
  171. package/lib/ele-file-list/index.d.ts +3 -3
  172. package/lib/ele-icon-select/components/icon-grid.cjs +19 -11
  173. package/lib/ele-icon-select/components/icon-grid.d.ts +8 -3
  174. package/lib/ele-icon-select/index.cjs +91 -85
  175. package/lib/ele-icon-select/index.d.ts +58 -59
  176. package/lib/ele-icon-select/props.cjs +34 -34
  177. package/lib/ele-icon-select/props.d.ts +35 -35
  178. package/lib/ele-icon-select/style/css-var.scss +1 -1
  179. package/lib/ele-icon-select/style/index.scss +50 -18
  180. package/lib/ele-icon-select/types.d.ts +13 -0
  181. package/lib/ele-map-picker/index.d.ts +3 -3
  182. package/lib/ele-modal/index.cjs +9 -3
  183. package/lib/ele-modal/index.d.ts +4 -2
  184. package/lib/ele-modal/props.cjs +2 -0
  185. package/lib/ele-modal/props.d.ts +2 -0
  186. package/lib/ele-modal/style/index.scss +16 -0
  187. package/lib/ele-pro-form/components/item-type-data.cjs +39 -64
  188. package/lib/ele-pro-form/index.d.ts +3 -3
  189. package/lib/ele-pro-table/components/table-tools.cjs +117 -247
  190. package/lib/ele-pro-table/components/table-tools.d.ts +12 -97
  191. package/lib/ele-pro-table/components/tool-export.cjs +32 -20
  192. package/lib/ele-pro-table/components/tool-export.d.ts +5 -1
  193. package/lib/ele-pro-table/components/tool-print.cjs +37 -25
  194. package/lib/ele-pro-table/components/tool-print.d.ts +5 -1
  195. package/lib/ele-pro-table/exceljs-plugin.cjs +81 -0
  196. package/lib/ele-pro-table/exceljs-plugin.d.ts +12 -0
  197. package/lib/ele-pro-table/index.cjs +143 -72
  198. package/lib/ele-pro-table/index.d.ts +6 -7
  199. package/lib/ele-pro-table/types.d.ts +11 -0
  200. package/lib/ele-split-panel/style/index.scss +1 -1
  201. package/lib/ele-table-select/index.d.ts +2 -0
  202. package/lib/ele-table-select/props.cjs +3 -1
  203. package/lib/ele-table-select/props.d.ts +2 -0
  204. package/lib/ele-tour/index.d.ts +3 -3
  205. package/lib/ele-tree-select/index.d.ts +2 -0
  206. package/lib/ele-upload-list/index.cjs +25 -8
  207. package/lib/ele-upload-list/index.d.ts +3 -3
  208. package/lib/ele-virtual-table/components/body-cell.d.ts +1 -1
  209. package/lib/ele-watermark/index.cjs +251 -92
  210. package/lib/ele-watermark/index.d.ts +20 -7
  211. package/lib/ele-watermark/props.cjs +10 -3
  212. package/lib/ele-watermark/props.d.ts +10 -3
  213. package/lib/ele-watermark/types.d.ts +12 -0
  214. package/lib/ele-watermark/util.cjs +10 -19
  215. package/lib/ele-watermark/util.d.ts +2 -9
  216. package/lib/lang/en_US.cjs +116 -0
  217. package/lib/lang/zh_CN.cjs +116 -0
  218. package/lib/lang/zh_TW.cjs +116 -0
  219. package/lib/style/plus.scss +3 -1
  220. package/lib/style/themes/default.scss +12 -3
  221. package/lib/style/themes/rounded.scss +2 -1
  222. package/lib/utils/theme-util.d.ts +1 -1
  223. package/package.json +1 -1
  224. package/typings/global.d.ts +2 -0
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, computed, watch, createElementBlock, openBlock, normalizeStyle, normalizeClass, createVNode, createCommentVNode, renderSlot, unref, withKeys, createSlots, withCtx, createBlock, withModifiers, Fragment, renderList, createTextVNode, toDisplayString, nextTick } from "vue";
1
+ import { defineComponent, ref, computed, watch, renderSlot, createElementBlock, openBlock, normalizeStyle, normalizeClass, createVNode, createCommentVNode, unref, withKeys, createSlots, withCtx, createBlock, withModifiers, Fragment, renderList, createTextVNode, toDisplayString, nextTick } from "vue";
2
2
  import { ElInput, ElIcon, ElTag } from "element-plus";
3
3
  import { CloseCircleFilled, ArrowDown } from "../../icons/index";
4
4
  import { basicSelectEmits, basicSelectProps } from "../props";
@@ -9,7 +9,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
9
9
  emits: {
10
10
  ...basicSelectEmits,
11
11
  /** 输入框点击事件 */
12
- inputClick: (_e) => true
12
+ inputClick: (_e) => true,
13
+ /** 容器点击事件 */
14
+ wrapClick: (_isCustom) => true
13
15
  },
14
16
  setup(__props, { expose: __expose, emit: __emit }) {
15
17
  const props = __props;
@@ -26,9 +28,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
26
28
  }
27
29
  return !Array.isArray(props.value) || !props.value.length;
28
30
  });
31
+ const isFilterable = computed(() => {
32
+ if (props.popperType !== "popper") {
33
+ return false;
34
+ }
35
+ return props.filterable;
36
+ });
29
37
  const inputPlaceholder = computed(() => {
30
38
  const str = isEmpty.value && props.placeholder ? props.placeholder : "";
31
- if (!props.filterable || !props.visible || props.multiple) {
39
+ if (!isFilterable.value || !props.visible || props.multiple) {
32
40
  return str;
33
41
  }
34
42
  return props.selectedLabel || str;
@@ -55,6 +63,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
55
63
  return props.value.length - props.maxTagCount;
56
64
  });
57
65
  const focusSearchInput = () => {
66
+ if (!isFilterable.value) {
67
+ return;
68
+ }
58
69
  const input = props.multiple ? searchRef.value : inputRef.value;
59
70
  input && input.focus();
60
71
  nextTick(() => {
@@ -62,13 +73,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
62
73
  });
63
74
  };
64
75
  const updateSearchValue = (modelValue) => {
65
- if (props.filterable && props.visible && props.multiple) {
76
+ if (isFilterable.value && props.visible && props.multiple) {
66
77
  searchValue.value = modelValue;
67
78
  emit("filterChange", modelValue);
68
79
  }
69
80
  };
70
81
  const updateInputValue = (modelValue) => {
71
- if (props.filterable && props.visible && !props.multiple) {
82
+ if (isFilterable.value && props.visible && !props.multiple) {
72
83
  inputValue.value = modelValue;
73
84
  emit("filterChange", modelValue);
74
85
  }
@@ -103,10 +114,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
103
114
  updateVisible(false);
104
115
  }
105
116
  };
117
+ const handleWrapClick = (isCustom) => {
118
+ emit("wrapClick", isCustom);
119
+ };
120
+ const openPopper = () => {
121
+ updateVisible(true);
122
+ };
123
+ const closePopper = () => {
124
+ updateVisible(false);
125
+ };
106
126
  watch(
107
127
  () => props.selectedLabel,
108
128
  (label) => {
109
- if (!props.filterable || !props.visible) {
129
+ if (!isFilterable.value || !props.visible) {
110
130
  inputValue.value = props.multiple || !label ? "" : label;
111
131
  }
112
132
  }
@@ -114,7 +134,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
114
134
  watch(
115
135
  () => props.visible,
116
136
  (visible) => {
117
- if (props.filterable) {
137
+ if (isFilterable.value) {
118
138
  if (props.multiple) {
119
139
  searchValue.value = "";
120
140
  if (visible) {
@@ -130,27 +150,44 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
130
150
  __expose({
131
151
  inputRef,
132
152
  searchRef,
133
- currentTags,
134
- omittedTags,
135
- omittedSize,
136
153
  focusSearchInput,
137
154
  updateSearchValue,
138
155
  updateInputValue
139
156
  });
140
157
  return (_ctx, _cache) => {
141
- return openBlock(), createElementBlock("div", {
142
- class: normalizeClass([
143
- "ele-select",
158
+ return _ctx.selectStyle === "none" ? renderSlot(_ctx.$slots, "default", { key: 0 }) : _ctx.$slots.select ? (openBlock(), createElementBlock("div", {
159
+ key: 1,
160
+ class: normalizeClass(_ctx.selectClass),
161
+ style: normalizeStyle(_ctx.selectStyle),
162
+ onClick: _cache[0] || (_cache[0] = ($event) => handleWrapClick(true))
163
+ }, [
164
+ renderSlot(_ctx.$slots, "select", {
165
+ visible: _ctx.visible,
166
+ value: _ctx.value,
167
+ selectedLabel: _ctx.selectedLabel,
168
+ selected: _ctx.selected,
169
+ currentTags: currentTags.value,
170
+ omittedTags: omittedTags.value,
171
+ omittedSize: omittedSize.value,
172
+ openPopper,
173
+ closePopper,
174
+ removeItem: handleTagClose
175
+ }),
176
+ renderSlot(_ctx.$slots, "default")
177
+ ], 6)) : (openBlock(), createElementBlock("div", {
178
+ key: 2,
179
+ class: normalizeClass(["ele-select", [
144
180
  _ctx.selectClass,
145
181
  { "is-empty": isEmpty.value },
146
182
  { "is-multiple": _ctx.multiple },
147
183
  { "is-disabled": _ctx.disabled },
148
- { "is-filterable": _ctx.filterable },
184
+ { "is-filterable": isFilterable.value },
149
185
  { "is-small": _ctx.size === "small" },
150
186
  { "is-large": _ctx.size === "large" },
151
187
  { "is-opened": _ctx.visible }
152
- ]),
153
- style: normalizeStyle(_ctx.selectStyle)
188
+ ]]),
189
+ style: normalizeStyle(_ctx.selectStyle),
190
+ onClick: _cache[1] || (_cache[1] = ($event) => handleWrapClick(false))
154
191
  }, [
155
192
  createVNode(unref(ElInput), {
156
193
  ref_key: "inputRef",
@@ -159,8 +196,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
159
196
  disabled: _ctx.disabled,
160
197
  validateEvent: false,
161
198
  modelValue: inputValue.value,
162
- placeholder: _ctx.filterable && _ctx.multiple && _ctx.visible ? "" : inputPlaceholder.value,
163
- readonly: !(_ctx.filterable && !_ctx.multiple),
199
+ placeholder: isFilterable.value && _ctx.multiple && _ctx.visible ? "" : inputPlaceholder.value,
200
+ readonly: !(isFilterable.value && !_ctx.multiple),
164
201
  style: normalizeStyle(_ctx.inputStyle),
165
202
  "onUpdate:modelValue": updateInputValue,
166
203
  onClick: handleInputClick,
@@ -241,7 +278,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
241
278
  ]),
242
279
  _: 3
243
280
  }, 8, ["size", "type"])) : createCommentVNode("", true),
244
- !_ctx.disabled && _ctx.filterable ? (openBlock(), createBlock(unref(ElTag), {
281
+ !_ctx.disabled && isFilterable.value ? (openBlock(), createBlock(unref(ElTag), {
245
282
  key: 1,
246
283
  size: _ctx.size,
247
284
  disableTransitions: true,
@@ -263,7 +300,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
263
300
  }, 8, ["size"])) : createCommentVNode("", true)
264
301
  ], 4)) : createCommentVNode("", true),
265
302
  renderSlot(_ctx.$slots, "default")
266
- ], 6);
303
+ ], 6));
267
304
  };
268
305
  }
269
306
  });
@@ -1,7 +1,7 @@
1
1
  import { EleTooltipInstance, EleBasicSelectViewInstance } from '../ele-app/plus';
2
2
  import { SelectedItem } from './types';
3
3
 
4
- declare function __VLS_template(): Partial<Record<string, (_: any) => any>> & Partial<Record<any, (_: any) => any>> & Partial<Record<string, (_: any) => any>> & {
4
+ declare function __VLS_template(): Partial<Record<string, (_: any) => any>> & Partial<Record<any, (_: any) => any>> & Partial<Record<any, (_: any) => any>> & Partial<Record<string, (_: any) => any>> & {
5
5
  default?(_: {}): any;
6
6
  };
7
7
  declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
@@ -22,6 +22,20 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
22
22
  automaticDropdown: BooleanConstructor;
23
23
  filterable: BooleanConstructor;
24
24
  visible: BooleanConstructor;
25
+ selectClass: StringConstructor;
26
+ selectStyle: import('vue').PropType<import('../ele-app/types').StyleValue | string>;
27
+ inputStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
28
+ selectTagsStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
29
+ popperClass: StringConstructor;
30
+ popperWidth: (StringConstructor | NumberConstructor)[];
31
+ popperHeight: (StringConstructor | NumberConstructor)[];
32
+ popperType: {
33
+ type: import('vue').PropType<import('./types').PopperType>;
34
+ default: string;
35
+ };
36
+ popperProps: import('vue').PropType<import('./types').PopperProps>;
37
+ popperSlots: ObjectConstructor;
38
+ popperTitle: StringConstructor;
25
39
  teleported: BooleanConstructor;
26
40
  persistent: BooleanConstructor;
27
41
  placement: import('vue').PropType<import('../ele-app/plus').EleTooltipProps["placement"]>;
@@ -30,15 +44,10 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
30
44
  default: string;
31
45
  };
32
46
  popperOptions: import('vue').PropType<import('../ele-app/plus').EleTooltipProps["popperOptions"]>;
33
- popperClass: StringConstructor;
34
- popperWidth: (StringConstructor | NumberConstructor)[];
35
- selectClass: StringConstructor;
36
- selectStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
37
- inputStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
38
- selectTagsStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
39
- popperType: import('vue').PropType<import('./types').PopperType>;
40
- popperProps: import('vue').PropType<import('./types').PopperProps>;
41
- popperSlots: ObjectConstructor;
47
+ responsive: {
48
+ type: BooleanConstructor;
49
+ default: null;
50
+ };
42
51
  }>, {
43
52
  tooltipRef: import('vue').Ref<EleTooltipInstance, EleTooltipInstance>;
44
53
  selectViewRef: import('vue').Ref<EleBasicSelectViewInstance, EleBasicSelectViewInstance>;
@@ -70,6 +79,20 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
70
79
  automaticDropdown: BooleanConstructor;
71
80
  filterable: BooleanConstructor;
72
81
  visible: BooleanConstructor;
82
+ selectClass: StringConstructor;
83
+ selectStyle: import('vue').PropType<import('../ele-app/types').StyleValue | string>;
84
+ inputStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
85
+ selectTagsStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
86
+ popperClass: StringConstructor;
87
+ popperWidth: (StringConstructor | NumberConstructor)[];
88
+ popperHeight: (StringConstructor | NumberConstructor)[];
89
+ popperType: {
90
+ type: import('vue').PropType<import('./types').PopperType>;
91
+ default: string;
92
+ };
93
+ popperProps: import('vue').PropType<import('./types').PopperProps>;
94
+ popperSlots: ObjectConstructor;
95
+ popperTitle: StringConstructor;
73
96
  teleported: BooleanConstructor;
74
97
  persistent: BooleanConstructor;
75
98
  placement: import('vue').PropType<import('../ele-app/plus').EleTooltipProps["placement"]>;
@@ -78,15 +101,10 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
78
101
  default: string;
79
102
  };
80
103
  popperOptions: import('vue').PropType<import('../ele-app/plus').EleTooltipProps["popperOptions"]>;
81
- popperClass: StringConstructor;
82
- popperWidth: (StringConstructor | NumberConstructor)[];
83
- selectClass: StringConstructor;
84
- selectStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
85
- inputStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
86
- selectTagsStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
87
- popperType: import('vue').PropType<import('./types').PopperType>;
88
- popperProps: import('vue').PropType<import('./types').PopperProps>;
89
- popperSlots: ObjectConstructor;
104
+ responsive: {
105
+ type: BooleanConstructor;
106
+ default: null;
107
+ };
90
108
  }>> & Readonly<{
91
109
  onBlur?: ((_e: FocusEvent) => any) | undefined;
92
110
  onFocus?: ((_e: FocusEvent) => any) | undefined;
@@ -105,6 +123,8 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
105
123
  transition: string;
106
124
  automaticDropdown: boolean;
107
125
  multiple: boolean;
126
+ responsive: boolean;
127
+ popperType: import('./types').PopperType;
108
128
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
109
129
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
110
130
  export default _default;
@@ -1,5 +1,7 @@
1
- import { defineComponent, ref, resolveComponent, createBlock, openBlock, mergeProps, createSlots, withCtx, createVNode, renderSlot, renderList, normalizeProps, guardReactiveProps, createCommentVNode, unref } from "vue";
1
+ import { defineComponent, ref, createBlock, openBlock, mergeProps, createSlots, withCtx, renderSlot, renderList, normalizeProps, guardReactiveProps, unref, normalizeClass, createElementBlock, createCommentVNode } from "vue";
2
2
  import EleTooltip from "../ele-tooltip/index";
3
+ import EleModal from "../ele-modal/index";
4
+ import EleDrawer from "../ele-drawer/index";
3
5
  import ReceiverView from "../ele-config-provider/components/receiver-view";
4
6
  import SelectView from "./components/select-view";
5
7
  import { basicSelectEmits, basicSelectProps } from "./props";
@@ -41,9 +43,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
41
43
  }
42
44
  updateVisible(visible);
43
45
  };
44
- const handleSelectInputClick = () => {
46
+ const handleWrapClick = (isCustom) => {
45
47
  isSelectInputClick.value = true;
46
- if (props.popperType === "modal") {
48
+ if (!isCustom && (props.popperType === "modal" || props.popperType === "drawer")) {
47
49
  updateVisible(true);
48
50
  }
49
51
  };
@@ -80,8 +82,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
80
82
  updateVisible
81
83
  });
82
84
  return (_ctx, _cache) => {
83
- const _component_EleModal = resolveComponent("EleModal");
84
- return _ctx.popperType === "modal" ? (openBlock(), createBlock(SelectView, mergeProps({ key: 0 }, _ctx.$props, {
85
+ return _ctx.popperType === "modal" || _ctx.popperType === "drawer" ? (openBlock(), createBlock(SelectView, mergeProps({ key: 0 }, _ctx.$props, {
85
86
  ref_key: "selectViewRef",
86
87
  ref: selectViewRef,
87
88
  "onUpdate:visible": updateVisible,
@@ -91,13 +92,48 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
91
92
  onBlur: handleBlur,
92
93
  onFilterChange: handleFilterChange,
93
94
  onInputClick: handleInputClick,
94
- onClick: handleSelectInputClick
95
+ onWrapClick: handleWrapClick
95
96
  }), createSlots({
96
97
  default: withCtx(() => [
97
- createVNode(_component_EleModal, mergeProps({
98
+ _ctx.popperType === "drawer" ? (openBlock(), createBlock(EleDrawer, mergeProps({
99
+ key: 0,
100
+ title: _ctx.popperTitle,
101
+ size: _ctx.popperWidth,
102
+ closeOnClickModal: false,
103
+ destroyOnClose: !_ctx.persistent,
104
+ responsive: _ctx.responsive,
105
+ class: _ctx.popperClass
106
+ }, _ctx.popperProps || {}, {
107
+ modelValue: _ctx.visible,
108
+ "onUpdate:modelValue": handleUpdatePopoverVisible
109
+ }), createSlots({
110
+ default: withCtx(() => [
111
+ renderSlot(_ctx.$slots, "default")
112
+ ]),
113
+ _: 2
114
+ }, [
115
+ renderList(Object.keys(_ctx.popperSlots || {}).filter(
116
+ (k) => k !== "default" && _ctx.popperSlots && _ctx.popperSlots[k] && _ctx.popperSlots[k] !== "default" && _ctx.$slots[_ctx.popperSlots[k]]
117
+ ), (name) => {
118
+ return {
119
+ name,
120
+ fn: withCtx((slotProps) => {
121
+ var _a;
122
+ return [
123
+ renderSlot(_ctx.$slots, (_a = _ctx.popperSlots) == null ? void 0 : _a[name], normalizeProps(guardReactiveProps(slotProps || {})))
124
+ ];
125
+ })
126
+ };
127
+ })
128
+ ]), 1040, ["title", "size", "destroyOnClose", "responsive", "class", "modelValue"])) : (openBlock(), createBlock(EleModal, mergeProps({
129
+ key: 1,
98
130
  position: "center",
131
+ title: _ctx.popperTitle,
99
132
  width: _ctx.popperWidth,
133
+ bodyHeight: _ctx.popperHeight,
134
+ closeOnClickModal: false,
100
135
  destroyOnClose: !_ctx.persistent,
136
+ responsive: _ctx.responsive,
101
137
  class: _ctx.popperClass
102
138
  }, _ctx.popperProps || {}, {
103
139
  modelValue: _ctx.visible,
@@ -121,7 +157,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
121
157
  })
122
158
  };
123
159
  })
124
- ]), 1040, ["width", "destroyOnClose", "class", "modelValue"])
160
+ ]), 1040, ["title", "width", "bodyHeight", "destroyOnClose", "responsive", "class", "modelValue"]))
125
161
  ]),
126
162
  _: 2
127
163
  }, [
@@ -133,8 +169,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
133
169
  ])
134
170
  };
135
171
  })
136
- ]), 1040)) : (openBlock(), createBlock(EleTooltip, mergeProps({
172
+ ]), 1040)) : _ctx.popperType === "default" ? (openBlock(), createBlock(unref(ReceiverView), {
137
173
  key: 1,
174
+ wrapHeight: _ctx.popperHeight,
175
+ class: normalizeClass(_ctx.popperClass)
176
+ }, {
177
+ default: withCtx(() => [
178
+ renderSlot(_ctx.$slots, "default")
179
+ ]),
180
+ _: 3
181
+ }, 8, ["wrapHeight", "class"])) : (openBlock(), createBlock(EleTooltip, mergeProps({
182
+ key: 2,
138
183
  ref_key: "tooltipRef",
139
184
  ref: tooltipRef,
140
185
  trigger: "click",
@@ -157,6 +202,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
157
202
  body: withCtx(() => [
158
203
  _ctx.persistent || _ctx.visible ? (openBlock(), createBlock(unref(ReceiverView), {
159
204
  key: 0,
205
+ wrapHeight: _ctx.popperHeight,
160
206
  class: "ele-popover-body",
161
207
  onClick: focusSearchInput,
162
208
  onMouseup: focusSearchInput
@@ -165,10 +211,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
165
211
  renderSlot(_ctx.$slots, "default")
166
212
  ]),
167
213
  _: 3
168
- })) : createCommentVNode("", true)
214
+ }, 8, ["wrapHeight"])) : createCommentVNode("", true)
169
215
  ]),
170
216
  default: withCtx(() => [
171
- createVNode(SelectView, mergeProps(_ctx.$props, {
217
+ _ctx.selectStyle === "none" ? (openBlock(), createElementBlock("div", {
218
+ key: 0,
219
+ class: normalizeClass(_ctx.selectClass)
220
+ }, null, 2)) : (openBlock(), createBlock(SelectView, mergeProps({ key: 1 }, _ctx.$props, {
172
221
  ref_key: "selectViewRef",
173
222
  ref: selectViewRef,
174
223
  "onUpdate:visible": updateVisible,
@@ -178,7 +227,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
178
227
  onBlur: handleBlur,
179
228
  onFilterChange: handleFilterChange,
180
229
  onInputClick: handleInputClick,
181
- onClick: handleSelectInputClick
230
+ onWrapClick: handleWrapClick
182
231
  }), createSlots({ _: 2 }, [
183
232
  renderList(Object.keys(_ctx.$slots).filter((k) => k !== "default"), (name) => {
184
233
  return {
@@ -188,7 +237,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
188
237
  ])
189
238
  };
190
239
  })
191
- ]), 1040)
240
+ ]), 1040))
192
241
  ]),
193
242
  _: 3
194
243
  }, 16, ["disabled", "placement", "teleported", "width", "popperClass", "popperOptions", "transition", "gpuAcceleration", "visible"]));
@@ -37,39 +37,51 @@ export declare const basicSelectProps: {
37
37
  automaticDropdown: BooleanConstructor;
38
38
  /** 是否可以筛选 */
39
39
  filterable: BooleanConstructor;
40
- /** 下拉框是否显示 */
40
+ /** 下拉组件是否显示 */
41
41
  visible: BooleanConstructor;
42
- /** 是否将下拉框插入 body */
43
- teleported: BooleanConstructor;
44
- /** 始终渲染下拉框 */
45
- persistent: BooleanConstructor;
46
- /** 下拉框位置 */
47
- placement: PropType<EleTooltipProps["placement"]>;
48
- /** 下拉框渐变动画 */
49
- transition: {
50
- type: StringConstructor;
51
- default: string;
52
- };
53
- /** popper.js 参数 */
54
- popperOptions: PropType<EleTooltipProps["popperOptions"]>;
55
- /** 下拉框类名 */
56
- popperClass: StringConstructor;
57
- /** 下拉框宽度 */
58
- popperWidth: (NumberConstructor | StringConstructor)[];
59
42
  /** 自定义类名 */
60
43
  selectClass: StringConstructor;
61
44
  /** 自定义样式 */
62
- selectStyle: PropType<StyleValue>;
45
+ selectStyle: PropType<StyleValue | string>;
63
46
  /** 自定义输入框样式 */
64
47
  inputStyle: PropType<StyleValue>;
65
48
  /** 自定义多选标签容器样式 */
66
49
  selectTagsStyle: PropType<StyleValue>;
67
- /** 下拉类型 */
68
- popperType: PropType<PopperType>;
50
+ /** 下拉组件类名 */
51
+ popperClass: StringConstructor;
52
+ /** 下拉组件宽度 */
53
+ popperWidth: (NumberConstructor | StringConstructor)[];
54
+ /** 下拉组件高度 */
55
+ popperHeight: (NumberConstructor | StringConstructor)[];
56
+ /** 下拉组件类型 */
57
+ popperType: {
58
+ type: PropType<PopperType>;
59
+ default: string;
60
+ };
69
61
  /** 下拉组件属性 */
70
62
  popperProps: PropType<PopperProps>;
71
63
  /** 下拉组件插槽 */
72
64
  popperSlots: ObjectConstructor;
65
+ /** 下拉组件标题 */
66
+ popperTitle: StringConstructor;
67
+ /** 是否将下拉组件插入 body */
68
+ teleported: BooleanConstructor;
69
+ /** 始终渲染下拉组件 */
70
+ persistent: BooleanConstructor;
71
+ /** 下拉框位置 */
72
+ placement: PropType<EleTooltipProps["placement"]>;
73
+ /** 下拉框渐变动画 */
74
+ transition: {
75
+ type: StringConstructor;
76
+ default: string;
77
+ };
78
+ /** popper.js 参数 */
79
+ popperOptions: PropType<EleTooltipProps["popperOptions"]>;
80
+ /** 是否开启响应式 */
81
+ responsive: {
82
+ type: BooleanConstructor;
83
+ default: null;
84
+ };
73
85
  };
74
86
  export type BasicSelectProps = ExtractPropTypes<typeof basicSelectProps>;
75
87
  /**
@@ -30,11 +30,36 @@ const basicSelectProps = {
30
30
  automaticDropdown: Boolean,
31
31
  /** 是否可以筛选 */
32
32
  filterable: Boolean,
33
- /** 下拉框是否显示 */
33
+ /** 下拉组件是否显示 */
34
34
  visible: Boolean,
35
- /** 是否将下拉框插入 body */
35
+ /** 自定义类名 */
36
+ selectClass: String,
37
+ /** 自定义样式 */
38
+ selectStyle: [Object, String],
39
+ /** 自定义输入框样式 */
40
+ inputStyle: Object,
41
+ /** 自定义多选标签容器样式 */
42
+ selectTagsStyle: Object,
43
+ /** 下拉组件类名 */
44
+ popperClass: String,
45
+ /** 下拉组件宽度 */
46
+ popperWidth: [Number, String],
47
+ /** 下拉组件高度 */
48
+ popperHeight: [Number, String],
49
+ /** 下拉组件类型 */
50
+ popperType: {
51
+ type: String,
52
+ default: "popper"
53
+ },
54
+ /** 下拉组件属性 */
55
+ popperProps: Object,
56
+ /** 下拉组件插槽 */
57
+ popperSlots: Object,
58
+ /** 下拉组件标题 */
59
+ popperTitle: String,
60
+ /** 是否将下拉组件插入 body */
36
61
  teleported: Boolean,
37
- /** 始终渲染下拉框 */
62
+ /** 始终渲染下拉组件 */
38
63
  persistent: Boolean,
39
64
  /** 下拉框位置 */
40
65
  placement: String,
@@ -45,24 +70,11 @@ const basicSelectProps = {
45
70
  },
46
71
  /** popper.js 参数 */
47
72
  popperOptions: Object,
48
- /** 下拉框类名 */
49
- popperClass: String,
50
- /** 下拉框宽度 */
51
- popperWidth: [Number, String],
52
- /** 自定义类名 */
53
- selectClass: String,
54
- /** 自定义样式 */
55
- selectStyle: Object,
56
- /** 自定义输入框样式 */
57
- inputStyle: Object,
58
- /** 自定义多选标签容器样式 */
59
- selectTagsStyle: Object,
60
- /** 下拉类型 */
61
- popperType: String,
62
- /** 下拉组件属性 */
63
- popperProps: Object,
64
- /** 下拉组件插槽 */
65
- popperSlots: Object
73
+ /** 是否开启响应式 */
74
+ responsive: {
75
+ type: Boolean,
76
+ default: null
77
+ }
66
78
  };
67
79
  const basicSelectEmits = {
68
80
  /** 更新下拉框显示状态 */
@@ -2,4 +2,6 @@ import "element-plus/es/components/input/style/index";
2
2
  import "element-plus/es/components/icon/style/index";
3
3
  import "element-plus/es/components/tag/style/index";
4
4
  import "../../ele-tooltip/style/index";
5
+ import "../../ele-modal/style/index";
6
+ import "../../ele-drawer/style/index";
5
7
  import "./index.scss";
@@ -23,7 +23,7 @@ export type SelectValue = SingleValue | MultipleValue | undefined | null;
23
23
  /**
24
24
  * 多选选中数据
25
25
  */
26
- export interface SelectedItem {
26
+ export interface SelectedItem extends Record<string, any> {
27
27
  /** 文本 */
28
28
  label: string;
29
29
  /** 值 */
@@ -1,9 +1,11 @@
1
1
  declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
2
+ wrapHeight: (StringConstructor | NumberConstructor)[];
2
3
  wrapPosition: {
3
4
  type: BooleanConstructor;
4
5
  default: boolean;
5
6
  };
6
7
  }>, () => any, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
8
+ wrapHeight: (StringConstructor | NumberConstructor)[];
7
9
  wrapPosition: {
8
10
  type: BooleanConstructor;
9
11
  default: boolean;