ele-admin-plus 1.2.1 → 1.2.2-beta.2

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 (60) hide show
  1. package/es/ele-app/components/form-item-rest.d.ts +4 -0
  2. package/es/ele-app/components/form-item-rest.js +15 -0
  3. package/es/ele-cropper/components/cropper-tools.js +1 -1
  4. package/es/ele-cropper/style/index.scss +10 -1
  5. package/es/ele-data-table/index.js +3 -3
  6. package/es/ele-dropdown/components/pro-dropdown.d.ts +9 -0
  7. package/es/ele-dropdown/index.d.ts +11 -2
  8. package/es/ele-dropdown/index.js +3 -1
  9. package/es/ele-dropdown/props.d.ts +11 -2
  10. package/es/ele-dropdown/props.js +6 -1
  11. package/es/ele-file-list/index.js +2 -1
  12. package/es/ele-menus/components/item-title.js +4 -3
  13. package/es/ele-menus/types.d.ts +2 -0
  14. package/es/ele-pro-table/components/table-tools.js +1 -0
  15. package/es/ele-pro-table/index.js +19 -5
  16. package/es/ele-segmented/index.d.ts +9 -0
  17. package/es/ele-segmented/index.js +3 -1
  18. package/es/ele-segmented/props.d.ts +5 -0
  19. package/es/ele-segmented/props.js +6 -1
  20. package/es/ele-split-panel/index.d.ts +2 -0
  21. package/es/ele-split-panel/index.js +8 -8
  22. package/es/ele-split-panel/props.d.ts +3 -1
  23. package/es/ele-split-panel/props.js +3 -1
  24. package/es/ele-tab-wrap/components/tab-dropdown.js +2 -1
  25. package/es/ele-tabs/index.js +1 -0
  26. package/es/ele-tabs/style/index.scss +1 -2
  27. package/es/icons/LoadingOutlined.js +1 -1
  28. package/es/utils/hook.d.ts +16 -0
  29. package/es/utils/hook.js +57 -3
  30. package/lib/ele-app/components/form-item-rest.cjs +14 -0
  31. package/lib/ele-app/components/form-item-rest.d.ts +4 -0
  32. package/lib/ele-cropper/components/cropper-tools.cjs +1 -1
  33. package/lib/ele-cropper/style/index.scss +10 -1
  34. package/lib/ele-data-table/index.cjs +3 -3
  35. package/lib/ele-dropdown/components/pro-dropdown.d.ts +9 -0
  36. package/lib/ele-dropdown/index.cjs +3 -1
  37. package/lib/ele-dropdown/index.d.ts +11 -2
  38. package/lib/ele-dropdown/props.cjs +6 -1
  39. package/lib/ele-dropdown/props.d.ts +11 -2
  40. package/lib/ele-file-list/index.cjs +2 -1
  41. package/lib/ele-menus/components/item-title.cjs +4 -3
  42. package/lib/ele-menus/types.d.ts +2 -0
  43. package/lib/ele-pro-table/components/table-tools.cjs +1 -0
  44. package/lib/ele-pro-table/index.cjs +19 -5
  45. package/lib/ele-segmented/index.cjs +3 -1
  46. package/lib/ele-segmented/index.d.ts +9 -0
  47. package/lib/ele-segmented/props.cjs +6 -1
  48. package/lib/ele-segmented/props.d.ts +5 -0
  49. package/lib/ele-split-panel/index.cjs +8 -8
  50. package/lib/ele-split-panel/index.d.ts +2 -0
  51. package/lib/ele-split-panel/props.cjs +3 -1
  52. package/lib/ele-split-panel/props.d.ts +3 -1
  53. package/lib/ele-tab-wrap/components/tab-dropdown.cjs +2 -1
  54. package/lib/ele-tabs/index.cjs +1 -0
  55. package/lib/ele-tabs/style/index.scss +1 -2
  56. package/lib/icons/LoadingOutlined.cjs +1 -1
  57. package/lib/utils/hook.cjs +56 -2
  58. package/lib/utils/hook.d.ts +16 -0
  59. package/package.json +1 -1
  60. package/typings/global.d.ts +1 -1
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ const vue = require("vue");
3
+ const hook = require("../../utils/hook");
4
+ const formItemRest = vue.defineComponent({
5
+ name: "FormItemRest",
6
+ setup(_props, { slots }) {
7
+ hook.useFormItemRest();
8
+ return () => {
9
+ var _a;
10
+ return (_a = slots.default) == null ? void 0 : _a.call(slots);
11
+ };
12
+ }
13
+ });
14
+ module.exports = formItemRest;
@@ -0,0 +1,4 @@
1
+ declare const _default: import('vue').DefineComponent<{}, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
2
+ [key: string]: any;
3
+ }>[] | undefined, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{}>>, {}, {}>;
4
+ export default _default;
@@ -169,7 +169,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
169
169
  accept: _ctx.accept,
170
170
  showFileList: false,
171
171
  beforeUpload: _ctx.handleUpload,
172
- style: { "display": "inline-block", "line-height": "0" }
172
+ class: "ele-cropper-tool-upload"
173
173
  }, {
174
174
  default: vue.withCtx(() => [
175
175
  vue.createVNode(_component_ElButton, {
@@ -68,12 +68,21 @@
68
68
  }
69
69
 
70
70
  .ele-cropper-tool-item {
71
- margin: 10px 14px 0 0;
71
+ margin: 10px 10px 0 0;
72
72
  vertical-align: top;
73
73
 
74
74
  &:last-child {
75
75
  margin-right: 0;
76
76
  }
77
+
78
+ & > .ele-cropper-tool-upload {
79
+ float: left;
80
+ }
81
+
82
+ .ele-cropper-tool-upload {
83
+ line-height: 0;
84
+ display: inline-block;
85
+ }
77
86
  }
78
87
 
79
88
  .ele-cropper-tool {
@@ -332,10 +332,10 @@ const index = /* @__PURE__ */ vue.defineComponent({
332
332
  }), {
333
333
  header: (slotProps) => {
334
334
  var _a, _b, _c;
335
- return col.headerSlot && !ownSlots.includes(col.headerSlot) && slots[col.headerSlot] ? (_a = slots[col.headerSlot]) == null ? void 0 : _a.call(slots, slotProps) : vue.createVNode("div", {
335
+ return vue.createVNode("div", {
336
336
  "class": "ele-cell-title",
337
- "title": (_b = slotProps == null ? void 0 : slotProps.column) == null ? void 0 : _b.label
338
- }, [(_c = slotProps == null ? void 0 : slotProps.column) == null ? void 0 : _c.label]);
337
+ "title": (_a = slotProps == null ? void 0 : slotProps.column) == null ? void 0 : _a.label
338
+ }, [col.headerSlot && !ownSlots.includes(col.headerSlot) && slots[col.headerSlot] ? (_b = slots[col.headerSlot]) == null ? void 0 : _b.call(slots, slotProps) : (_c = slotProps == null ? void 0 : slotProps.column) == null ? void 0 : _c.label]);
339
339
  },
340
340
  ["filter-icon"]: (slotProps) => {
341
341
  var _a;
@@ -17,6 +17,10 @@ declare const _default: import('vue').DefineComponent<{
17
17
  preventContextmenu: BooleanConstructor;
18
18
  splitButtonProps: PropType<import('../../ele-app/el').ElButtonProps>;
19
19
  caretButtonProps: PropType<import('../../ele-app/el').ElButtonProps>;
20
+ formValidate: {
21
+ type: BooleanConstructor;
22
+ default: boolean;
23
+ };
20
24
  type: {
21
25
  readonly type: import('vue').PropType<import('element-plus/es/utils/index').EpPropMergeType<(new (...args: any[]) => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown> & {}) | (() => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown>) | ((new (...args: any[]) => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown> & {}) | (() => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown>))[], unknown, unknown>>;
22
26
  readonly required: false;
@@ -128,6 +132,10 @@ declare const _default: import('vue').DefineComponent<{
128
132
  preventContextmenu: BooleanConstructor;
129
133
  splitButtonProps: PropType<import('../../ele-app/el').ElButtonProps>;
130
134
  caretButtonProps: PropType<import('../../ele-app/el').ElButtonProps>;
135
+ formValidate: {
136
+ type: BooleanConstructor;
137
+ default: boolean;
138
+ };
131
139
  type: {
132
140
  readonly type: import('vue').PropType<import('element-plus/es/utils/index').EpPropMergeType<(new (...args: any[]) => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown> & {}) | (() => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown>) | ((new (...args: any[]) => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown> & {}) | (() => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown>))[], unknown, unknown>>;
133
141
  readonly required: false;
@@ -234,5 +242,6 @@ declare const _default: import('vue').DefineComponent<{
234
242
  virtualTriggering: boolean;
235
243
  gpuAcceleration: import('element-plus/es/utils/index').EpPropMergeType<BooleanConstructor, unknown, unknown>;
236
244
  preventContextmenu: boolean;
245
+ formValidate: boolean;
237
246
  }, {}>;
238
247
  export default _default;
@@ -39,7 +39,9 @@ const _sfc_main = vue.defineComponent({
39
39
  const updateModelValue = (value) => {
40
40
  if (value !== props$1.modelValue) {
41
41
  emit("update:modelValue", value);
42
- validateChange();
42
+ if (props$1.formValidate) {
43
+ validateChange();
44
+ }
43
45
  emit("change", value);
44
46
  }
45
47
  };
@@ -17,6 +17,10 @@ declare const _default: import('vue').DefineComponent<{
17
17
  preventContextmenu: BooleanConstructor;
18
18
  splitButtonProps: import('vue').PropType<import('../ele-app/el').ElButtonProps>;
19
19
  caretButtonProps: import('vue').PropType<import('../ele-app/el').ElButtonProps>;
20
+ formValidate: {
21
+ type: BooleanConstructor;
22
+ default: boolean;
23
+ };
20
24
  type: {
21
25
  readonly type: import('vue').PropType<import('element-plus/es/utils/index').EpPropMergeType<(new (...args: any[]) => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown> & {}) | (() => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown>) | ((new (...args: any[]) => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown> & {}) | (() => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown>))[], unknown, unknown>>;
22
26
  readonly required: false;
@@ -30,7 +34,7 @@ declare const _default: import('vue').DefineComponent<{
30
34
  readonly validator: ((val: unknown) => boolean) | undefined;
31
35
  readonly __epPropKey: true;
32
36
  };
33
- placement: import('element-plus/es/utils/index').EpPropFinalized<(new (...args: any[]) => import('element-plus').Placement & {}) | (() => import('element-plus').Placement) | ((new (...args: any[]) => import('element-plus').Placement & {}) | (() => import('element-plus').Placement))[], unknown, unknown, "bottom", boolean>;
37
+ placement: import('element-plus/es/utils/index').EpPropFinalized<(new (... /** 关闭下拉菜单 */args: any[]) => import('element-plus').Placement & {}) | (() => import('element-plus').Placement) | ((new (...args: any[]) => import('element-plus').Placement & {}) | (() => import('element-plus').Placement))[], unknown, unknown, "bottom", boolean>;
34
38
  popperClass: import('element-plus/es/utils/index').EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
35
39
  teleported: import('element-plus/es/utils/index').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
36
40
  disabled: BooleanConstructor;
@@ -120,6 +124,10 @@ declare const _default: import('vue').DefineComponent<{
120
124
  preventContextmenu: BooleanConstructor;
121
125
  splitButtonProps: import('vue').PropType<import('../ele-app/el').ElButtonProps>;
122
126
  caretButtonProps: import('vue').PropType<import('../ele-app/el').ElButtonProps>;
127
+ formValidate: {
128
+ type: BooleanConstructor;
129
+ default: boolean;
130
+ };
123
131
  type: {
124
132
  readonly type: import('vue').PropType<import('element-plus/es/utils/index').EpPropMergeType<(new (...args: any[]) => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown> & {}) | (() => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown>) | ((new (...args: any[]) => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown> & {}) | (() => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown>))[], unknown, unknown>>;
125
133
  readonly required: false;
@@ -133,7 +141,7 @@ declare const _default: import('vue').DefineComponent<{
133
141
  readonly validator: ((val: unknown) => boolean) | undefined;
134
142
  readonly __epPropKey: true;
135
143
  };
136
- placement: import('element-plus/es/utils/index').EpPropFinalized<(new (...args: any[]) => import('element-plus').Placement & {}) | (() => import('element-plus').Placement) | ((new (...args: any[]) => import('element-plus').Placement & {}) | (() => import('element-plus').Placement))[], unknown, unknown, "bottom", boolean>;
144
+ placement: import('element-plus/es/utils/index').EpPropFinalized<(new (... /** 关闭下拉菜单 */args: any[]) => import('element-plus').Placement & {}) | (() => import('element-plus').Placement) | ((new (...args: any[]) => import('element-plus').Placement & {}) | (() => import('element-plus').Placement))[], unknown, unknown, "bottom", boolean>;
137
145
  popperClass: import('element-plus/es/utils/index').EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
138
146
  teleported: import('element-plus/es/utils/index').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
139
147
  disabled: BooleanConstructor;
@@ -226,5 +234,6 @@ declare const _default: import('vue').DefineComponent<{
226
234
  virtualTriggering: boolean;
227
235
  gpuAcceleration: import('element-plus/es/utils/index').EpPropMergeType<BooleanConstructor, unknown, unknown>;
228
236
  preventContextmenu: boolean;
237
+ formValidate: boolean;
229
238
  }, {}>;
230
239
  export default _default;
@@ -52,7 +52,12 @@ const dropdownProps = {
52
52
  /** 内容按钮属性 */
53
53
  splitButtonProps: Object,
54
54
  /** 箭头按钮属性 */
55
- caretButtonProps: Object
55
+ caretButtonProps: Object,
56
+ /** 是否支持表单验证 */
57
+ formValidate: {
58
+ type: Boolean,
59
+ default: true
60
+ }
56
61
  };
57
62
  const dropdownEmits = {
58
63
  ...props.popoverEmits,
@@ -14,7 +14,9 @@ declare const normalizeDropdownProps: import('../ele-app/types').Mutable<Omit<{
14
14
  readonly __epPropKey: true;
15
15
  };
16
16
  readonly type: {
17
- readonly type: import('vue').PropType<import('element-plus/es/utils/index').EpPropMergeType<(new (...args: any[]) => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown> & {}) | (() => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown>) | ((new (...args: any[]) => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown> & {}) | (() => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown>))[], unknown, unknown>>;
17
+ readonly type: import('vue').PropType<import('element-plus/es/utils/index').EpPropMergeType<(new (
18
+ /** 是否支持表单验证 */
19
+ ... /** 是否支持表单验证 */args: any[]) => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown> & {}) | (() => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown>) | ((new (...args: any[]) => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown> & {}) | (() => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown>))[], unknown, unknown>>;
18
20
  readonly required: false;
19
21
  readonly validator: ((val: unknown) => boolean) | undefined;
20
22
  __epPropKey: true;
@@ -66,8 +68,15 @@ export declare const dropdownProps: {
66
68
  splitButtonProps: PropType<ElButtonProps>;
67
69
  /** 箭头按钮属性 */
68
70
  caretButtonProps: PropType<ElButtonProps>;
71
+ /** 是否支持表单验证 */
72
+ formValidate: {
73
+ type: BooleanConstructor;
74
+ default: boolean;
75
+ };
69
76
  type: {
70
- readonly type: import('vue').PropType<import('element-plus/es/utils/index').EpPropMergeType<(new (...args: any[]) => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown> & {}) | (() => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown>) | ((new (...args: any[]) => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown> & {}) | (() => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown>))[], unknown, unknown>>;
77
+ readonly type: import('vue').PropType<import('element-plus/es/utils/index').EpPropMergeType<(new (
78
+ /** 是否支持表单验证 */
79
+ ... /** 是否支持表单验证 */args: any[]) => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown> & {}) | (() => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown>) | ((new (...args: any[]) => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown> & {}) | (() => import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "" | "text" | "default" | "success" | "warning" | "info" | "primary" | "danger", unknown>))[], unknown, unknown>>;
71
80
  readonly required: false;
72
81
  readonly validator: ((val: unknown) => boolean) | undefined;
73
82
  __epPropKey: true;
@@ -357,7 +357,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
357
357
  key: 2,
358
358
  persistent: false,
359
359
  placement: "bottom-start",
360
- popperClass: "ele-file-list-item-context"
360
+ popperClass: "ele-file-list-item-context",
361
+ formValidate: false
361
362
  }, _ctx.contextMenuProps || {}, {
362
363
  ref: "ctxMenuDropdownRef",
363
364
  componentType: "pro",
@@ -53,7 +53,7 @@ const _hoisted_1 = {
53
53
  key: 0,
54
54
  class: "ele-menu-title"
55
55
  };
56
- const _hoisted_2 = ["href"];
56
+ const _hoisted_2 = ["href", "target"];
57
57
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
58
58
  const _component_ElIcon = vue.resolveComponent("ElIcon");
59
59
  const _component_ElBadge = vue.resolveComponent("ElBadge");
@@ -90,15 +90,16 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
90
90
  _ctx.isExternalLink(_ctx.item.path) ? (vue.openBlock(), vue.createElementBlock("a", {
91
91
  key: 0,
92
92
  href: _ctx.item.path,
93
- target: "_blank",
93
+ target: _ctx.item.pathTarget || "_blank",
94
94
  class: "ele-menu-link",
95
95
  onClick: _cache[0] || (_cache[0] = vue.withModifiers(() => {
96
96
  }, ["stop"]))
97
97
  }, null, 8, _hoisted_2)) : _ctx.item.path ? (vue.openBlock(), vue.createBlock(_component_RouterLink, {
98
98
  key: 1,
99
99
  to: _ctx.item.path,
100
+ target: _ctx.item.pathTarget,
100
101
  class: "ele-menu-link"
101
- }, null, 8, ["to"])) : vue.createCommentVNode("", true)
102
+ }, null, 8, ["to", "target"])) : vue.createCommentVNode("", true)
102
103
  ], 64)) : vue.createCommentVNode("", true)
103
104
  ], 32)
104
105
  ], 64);
@@ -28,6 +28,8 @@ export interface MenuItem
28
28
  iconStyle?: StyleValue;
29
29
  /** 菜单链接地址 */
30
30
  path?: string;
31
+ /** 菜单的打开位置 */
32
+ pathTarget?: string;
31
33
  /** 是否展示为分组菜单 */
32
34
  group?: boolean;
33
35
  /** 徽章 */
@@ -307,6 +307,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
307
307
  vue.createVNode(_component_EleDropdown, {
308
308
  trigger: "click",
309
309
  placement: "bottom",
310
+ formValidate: false,
310
311
  popperClass: "ele-tool-size-popper",
311
312
  modelValue: _ctx.size,
312
313
  items: _ctx.sizeDropdownItems,
@@ -236,14 +236,28 @@ const _sfc_main = vue.defineComponent({
236
236
  );
237
237
  requestCallback(data, total, parent, result, resolve);
238
238
  }).catch((e) => {
239
- requestCallback(e == null ? void 0 : e.message);
239
+ const errorMsg = e == null ? void 0 : e.message;
240
+ requestCallback(
241
+ errorMsg == null ? errorMsg : String(errorMsg),
242
+ void 0,
243
+ parent,
244
+ e,
245
+ resolve
246
+ );
240
247
  resolve && console.error(e);
241
248
  });
242
249
  };
243
250
  const requestCallback = (data, total, parent, response, resolve) => {
244
- var _a;
245
- if (!Array.isArray(data)) {
246
- tableData.value = [];
251
+ var _a, _b;
252
+ if (data == null || !Array.isArray(data)) {
253
+ if (resolve) {
254
+ if (parent != null) {
255
+ parent[((_a = props2.treeProps) == null ? void 0 : _a.children) || "children"] = [];
256
+ }
257
+ resolve([]);
258
+ } else {
259
+ tableData.value = [];
260
+ }
247
261
  tableLoading.value = false;
248
262
  if (typeof data === "string" && data) {
249
263
  errorText.value = data;
@@ -260,7 +274,7 @@ const _sfc_main = vue.defineComponent({
260
274
  }
261
275
  if (resolve) {
262
276
  if (parent != null) {
263
- parent[((_a = props2.treeProps) == null ? void 0 : _a.children) || "children"] = data;
277
+ parent[((_b = props2.treeProps) == null ? void 0 : _b.children) || "children"] = data;
264
278
  }
265
279
  resolve(data);
266
280
  } else {
@@ -17,7 +17,9 @@ const _sfc_main = vue.defineComponent({
17
17
  const handleUpdateModelValue = (value) => {
18
18
  if (props2.modelValue !== value) {
19
19
  emit("update:modelValue", value);
20
- validateChange();
20
+ if (props2.formValidate) {
21
+ validateChange();
22
+ }
21
23
  emit("change", value);
22
24
  }
23
25
  };
@@ -9,6 +9,10 @@ declare const _default: import('vue').DefineComponent<{
9
9
  required: boolean;
10
10
  };
11
11
  size: import('vue').PropType<import('./types').SegmentedSize>;
12
+ formValidate: {
13
+ type: BooleanConstructor;
14
+ default: boolean;
15
+ };
12
16
  }, {
13
17
  tabRef: import('vue').Ref<ElTabsInstance>;
14
18
  isEmptyActive: import('vue').ComputedRef<boolean>;
@@ -26,11 +30,16 @@ declare const _default: import('vue').DefineComponent<{
26
30
  required: boolean;
27
31
  };
28
32
  size: import('vue').PropType<import('./types').SegmentedSize>;
33
+ formValidate: {
34
+ type: BooleanConstructor;
35
+ default: boolean;
36
+ };
29
37
  }>> & {
30
38
  "onUpdate:modelValue"?: ((_value: string | number) => any) | undefined;
31
39
  onChange?: ((_active: string | number) => any) | undefined;
32
40
  }, {
33
41
  disabled: boolean;
34
42
  block: boolean;
43
+ formValidate: boolean;
35
44
  }, {}>;
36
45
  export default _default;
@@ -13,7 +13,12 @@ const segmentedProps = {
13
13
  required: true
14
14
  },
15
15
  /** 尺寸 */
16
- size: String
16
+ size: String,
17
+ /** 是否支持表单验证 */
18
+ formValidate: {
19
+ type: Boolean,
20
+ default: true
21
+ }
17
22
  };
18
23
  const segmentedEmits = {
19
24
  /** 更新绑定值 */
@@ -18,6 +18,11 @@ export declare const segmentedProps: {
18
18
  };
19
19
  /** 尺寸 */
20
20
  size: PropType<SegmentedSize>;
21
+ /** 是否支持表单验证 */
22
+ formValidate: {
23
+ type: BooleanConstructor;
24
+ default: boolean;
25
+ };
21
26
  };
22
27
  export type SegmentedProps = ExtractPropTypes<typeof segmentedProps>;
23
28
  /**
@@ -123,11 +123,7 @@ const _export_sfc = (sfc, props2) => {
123
123
  }
124
124
  return target;
125
125
  };
126
- const _hoisted_1 = {
127
- ref: "wrapRef",
128
- class: "ele-split-panel-wrap"
129
- };
130
- const _hoisted_2 = { class: "ele-split-panel-space" };
126
+ const _hoisted_1 = { class: "ele-split-panel-space" };
131
127
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
132
128
  const _component_ArrowUp = vue.resolveComponent("ArrowUp");
133
129
  const _component_ArrowLeft = vue.resolveComponent("ArrowLeft");
@@ -150,7 +146,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
150
146
  })
151
147
  }, {
152
148
  default: vue.withCtx(() => [
153
- vue.createElementVNode("div", _hoisted_1, [
149
+ vue.createElementVNode("div", {
150
+ ref: "wrapRef",
151
+ class: "ele-split-panel-wrap",
152
+ style: vue.normalizeStyle(_ctx.customWrapStyle)
153
+ }, [
154
154
  vue.createElementVNode("div", {
155
155
  ref: "sideRef",
156
156
  class: "ele-split-panel-side",
@@ -158,14 +158,14 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
158
158
  }, [
159
159
  vue.renderSlot(_ctx.$slots, "default")
160
160
  ], 4),
161
- vue.createElementVNode("div", _hoisted_2, [
161
+ vue.createElementVNode("div", _hoisted_1, [
162
162
  _ctx.resizable ? (vue.openBlock(), vue.createElementBlock("div", {
163
163
  key: 0,
164
164
  class: "ele-split-resize-line",
165
165
  onMousedown: _cache[0] || (_cache[0] = (...args) => _ctx.handleResize && _ctx.handleResize(...args))
166
166
  }, null, 32)) : vue.createCommentVNode("", true)
167
167
  ])
168
- ], 512),
168
+ ], 4),
169
169
  vue.createElementVNode("div", {
170
170
  class: "ele-split-panel-body",
171
171
  style: vue.normalizeStyle(_ctx.bodyStyle)
@@ -6,6 +6,7 @@ declare const _default: import('vue').DefineComponent<{
6
6
  maxSize: NumberConstructor;
7
7
  space: StringConstructor;
8
8
  customStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
9
+ customWrapStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
9
10
  bodyStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
10
11
  allowCollapse: BooleanConstructor;
11
12
  collapseStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
@@ -37,6 +38,7 @@ declare const _default: import('vue').DefineComponent<{
37
38
  maxSize: NumberConstructor;
38
39
  space: StringConstructor;
39
40
  customStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
41
+ customWrapStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
40
42
  bodyStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
41
43
  allowCollapse: BooleanConstructor;
42
44
  collapseStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
@@ -9,8 +9,10 @@ const splitPanelProps = {
9
9
  maxSize: Number,
10
10
  /** 间距 */
11
11
  space: String,
12
- /** 自定义样式 */
12
+ /** 自定义边栏样式 */
13
13
  customStyle: Object,
14
+ /** 自定义边栏容器样式 */
15
+ customWrapStyle: Object,
14
16
  /** 自定义内容样式 */
15
17
  bodyStyle: Object,
16
18
  /** 是否可折叠 */
@@ -13,8 +13,10 @@ export declare const splitPanelProps: {
13
13
  maxSize: NumberConstructor;
14
14
  /** 间距 */
15
15
  space: StringConstructor;
16
- /** 自定义样式 */
16
+ /** 自定义边栏样式 */
17
17
  customStyle: PropType<StyleValue>;
18
+ /** 自定义边栏容器样式 */
19
+ customWrapStyle: PropType<StyleValue>;
18
20
  /** 自定义内容样式 */
19
21
  bodyStyle: PropType<StyleValue>;
20
22
  /** 是否可折叠 */
@@ -58,7 +58,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
58
58
  popperClass: "ele-tab-popup",
59
59
  popperOptions: {
60
60
  modifiers: [{ name: "offset", options: { offset: [12, 8] } }]
61
- }
61
+ },
62
+ formValidate: false
62
63
  }, _ctx.dropdownProps || {}, {
63
64
  ref: "dropdownRef",
64
65
  items: _ctx.items,
@@ -437,6 +437,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
437
437
  key: 0,
438
438
  triggerKeys: [],
439
439
  persistent: false,
440
+ formValidate: false,
440
441
  placement: "bottom-start",
441
442
  popperClass: "ele-tab-popup",
442
443
  popperOptions: {
@@ -1043,8 +1043,6 @@
1043
1043
  /* 内部表格高度铺满 */
1044
1044
  .ele-tabs.is-flex-table {
1045
1045
  flex: 1;
1046
- display: flex;
1047
- flex-direction: column;
1048
1046
  overflow: auto;
1049
1047
 
1050
1048
  & > .el-tabs__content {
@@ -1056,6 +1054,7 @@
1056
1054
  display: flex;
1057
1055
  flex-direction: column;
1058
1056
  box-sizing: border-box;
1057
+ overflow: auto;
1059
1058
 
1060
1059
  & > .ele-pro-table {
1061
1060
  flex: 1;
@@ -17,7 +17,7 @@ const _hoisted_1 = {
17
17
  "stroke-width": "4",
18
18
  "stroke-linecap": "round"
19
19
  };
20
- const _hoisted_2 = /* @__PURE__ */ vue.createElementVNode("path", { d: "M 22 6 C 34 6 42 14 42 26" }, null, -1);
20
+ const _hoisted_2 = /* @__PURE__ */ vue.createElementVNode("path", { d: "M22 6C34 6 42 14 42 26" }, null, -1);
21
21
  const _hoisted_3 = [
22
22
  _hoisted_2
23
23
  ];
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const vue = require("vue");
4
+ const elementPlus = require("element-plus");
5
+ const SortableJs = require("sortablejs");
6
+ function useFormItemRest() {
7
+ vue.provide(elementPlus.formItemContextKey, null);
8
+ }
4
9
  function useTimer(ms, cb) {
5
10
  let timer = null;
6
11
  const waiting = vue.ref(false);
@@ -33,10 +38,18 @@ function useMediaQuery(query, onChange) {
33
38
  };
34
39
  const startWatch = () => {
35
40
  stopWatch();
36
- mediaQuery.addEventListener("change", handleChange);
41
+ if ("addEventListener" in mediaQuery) {
42
+ mediaQuery.addEventListener("change", handleChange);
43
+ } else {
44
+ mediaQuery.addListener(handleChange);
45
+ }
37
46
  };
38
47
  const stopWatch = () => {
39
- mediaQuery.removeEventListener("change", handleChange);
48
+ if ("removeEventListener" in mediaQuery) {
49
+ mediaQuery.removeEventListener("change", handleChange);
50
+ } else {
51
+ mediaQuery.removeListener(handleChange);
52
+ }
40
53
  handleChange();
41
54
  };
42
55
  vue.onBeforeUnmount(() => {
@@ -255,10 +268,51 @@ function useMoveEvent(option) {
255
268
  handleTouchstart
256
269
  };
257
270
  }
271
+ function useSortable(getEl, getData, updateData, options) {
272
+ let sortableIns = null;
273
+ const destroySortable = () => {
274
+ if (sortableIns != null) {
275
+ sortableIns.destroy();
276
+ }
277
+ sortableIns = null;
278
+ };
279
+ const initSortable = () => {
280
+ destroySortable();
281
+ const el = getEl();
282
+ if (el == null) {
283
+ return;
284
+ }
285
+ sortableIns = new SortableJs(el, {
286
+ onUpdate: ({ oldDraggableIndex, newDraggableIndex }) => {
287
+ if (typeof oldDraggableIndex === "number" && typeof newDraggableIndex === "number") {
288
+ const data = [...getData() || []];
289
+ data.splice(
290
+ newDraggableIndex,
291
+ 0,
292
+ data.splice(oldDraggableIndex, 1)[0]
293
+ );
294
+ updateData(data);
295
+ }
296
+ },
297
+ setData: () => {
298
+ },
299
+ ...options || {}
300
+ });
301
+ };
302
+ vue.onMounted(() => {
303
+ initSortable();
304
+ });
305
+ vue.onBeforeUnmount(() => {
306
+ destroySortable();
307
+ });
308
+ return { initSortable, destroySortable };
309
+ }
258
310
  exports.useCollapseAnim = useCollapseAnim;
311
+ exports.useFormItemRest = useFormItemRest;
259
312
  exports.useMediaQuery = useMediaQuery;
260
313
  exports.useMousewheel = useMousewheel;
261
314
  exports.useMoveEvent = useMoveEvent;
315
+ exports.useSortable = useSortable;
262
316
  exports.useTimer = useTimer;
263
317
  exports.useTouchEvent = useTouchEvent;
264
318
  exports.useWindowListener = useWindowListener;
@@ -1,5 +1,10 @@
1
1
  import { Ref } from 'vue';
2
+ import { default as SortableJs } from 'sortablejs';
2
3
 
4
+ /**
5
+ * 重置组件表单验证
6
+ */
7
+ export declare function useFormItemRest(): void;
3
8
  /**
4
9
  * useTimer 返回结果
5
10
  */
@@ -111,3 +116,14 @@ export declare function useMoveEvent(option?: UseTouchEventOption<MoveEvent>): {
111
116
  handleMousedown: (e: MouseEvent) => void;
112
117
  handleTouchstart: (e: TouchEvent) => void;
113
118
  };
119
+ /**
120
+ * 拖拽排序
121
+ * @param getEl 获取容器方法
122
+ * @param getData 获取数据方法
123
+ * @param updateData 更新数据方法
124
+ * @param options 自定义参数
125
+ */
126
+ export declare function useSortable<T>(getEl: () => HTMLElement | undefined | null, getData: () => T[] | undefined | null, updateData: (data: T[]) => void, options?: SortableJs.Options): {
127
+ initSortable: () => void;
128
+ destroySortable: () => void;
129
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ele-admin-plus",
3
- "version": "1.2.1",
3
+ "version": "1.2.2-beta.2",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "dev": "vite --host --config vite.global.ts",