@wfrog/vc-ui 1.6.1 → 1.8.0

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 (107) hide show
  1. package/dist/es/chunk/{BL8WhaLp.mjs → 39c07jh1.mjs} +1 -1
  2. package/dist/es/chunk/{CbYM6R_O.mjs → 3jDcB2xo.mjs} +6 -6
  3. package/dist/es/chunk/{DhGcJR5p.mjs → B11niAKN.mjs} +1 -1
  4. package/dist/es/chunk/{fueZ9sVu.mjs → B7FqhrtI.mjs} +4 -4
  5. package/dist/es/chunk/{B3GxuXVE.mjs → BAqSLB3Y.mjs} +1 -1
  6. package/dist/es/chunk/{CGhekNBa.mjs → BBXZ8dk4.mjs} +1 -1
  7. package/dist/es/chunk/{DYKOYbzT.mjs → BL-J8gO7.mjs} +5 -5
  8. package/dist/es/chunk/{Cg-Krnly.mjs → BQVjODp4.mjs} +1 -1
  9. package/dist/es/chunk/{D6nWUATi.mjs → B_RyUSJF.mjs} +13 -13
  10. package/dist/es/chunk/{DSt2uDNE.mjs → BqMf3xBl.mjs} +2 -2
  11. package/dist/es/chunk/{DQK0ezHm.mjs → BzqDqZOf.mjs} +3 -3
  12. package/dist/es/chunk/{BxibBO68.mjs → C-HMX6-e.mjs} +6 -6
  13. package/dist/es/chunk/{CboHfRXN.mjs → C2kaTl08.mjs} +2 -2
  14. package/dist/es/chunk/{D1MHFKtN.mjs → C6xZotC7.mjs} +1 -1
  15. package/dist/es/chunk/{F2ph6lWu.mjs → CFYABm3t.mjs} +6 -6
  16. package/dist/es/chunk/{DQi1QPak.mjs → CPW-P7zz.mjs} +8 -8
  17. package/dist/es/chunk/{DViraU6I.mjs → CROtrCmM.mjs} +1 -1
  18. package/dist/es/chunk/{CqTa_Vd-.mjs → CSZw6Ko2.mjs} +2 -2
  19. package/dist/es/chunk/{CwXV7M2F.mjs → CaA5lDme.mjs} +2 -2
  20. package/dist/es/chunk/Cb0n0U19.mjs +2199 -0
  21. package/dist/es/chunk/{CKZGL4_3.mjs → CdG7Eqv2.mjs} +3 -3
  22. package/dist/es/chunk/{BfjuZmry.mjs → D1Ki7NcP.mjs} +2 -2
  23. package/dist/es/chunk/{DTbnchOm.mjs → D5u7KBz_.mjs} +1 -1
  24. package/dist/es/chunk/{DX84QR5M.mjs → DYhJTpil.mjs} +3 -3
  25. package/dist/es/chunk/{D_Mvdscy.mjs → Dh_zpmSz.mjs} +2 -2
  26. package/dist/es/chunk/{D6m3vWpc.mjs → DrC4SmEj.mjs} +1 -1
  27. package/dist/es/chunk/{DAIuzoFs.mjs → DutTJaGc.mjs} +1 -1
  28. package/dist/es/chunk/{w7VqVeWU.mjs → RgWmId3R.mjs} +1 -1
  29. package/dist/es/chunk/{CQz3lhyS.mjs → UUVoNfr4.mjs} +1 -1
  30. package/dist/es/chunk/{D7CQDxqy.mjs → tJuysXfp.mjs} +2 -2
  31. package/dist/es/components/backbottom/backbottom.mjs +1 -1
  32. package/dist/es/components/button/button.mjs +4 -4
  33. package/dist/es/components/choice/choice.mjs +2 -2
  34. package/dist/es/components/color-switcher/color-switcher.mjs +5 -5
  35. package/dist/es/components/cropper/cropper.mjs +6 -6
  36. package/dist/es/components/currency/currency.mjs +3 -3
  37. package/dist/es/components/daterange-picker/daterange-picker.mjs +9 -9
  38. package/dist/es/components/dialog/dialog.d.ts +1 -0
  39. package/dist/es/components/dialog/dialog.mjs +23 -17
  40. package/dist/es/components/dialog/dialog.vue.d.ts +3 -1
  41. package/dist/es/components/dialog/index.css +22 -17
  42. package/dist/es/components/dialog-camera-upload/dialog-camera-upload.mjs +8 -8
  43. package/dist/es/components/dialog-map-point/dialog-map-point.mjs +2 -2
  44. package/dist/es/components/dialog-upload-images/dialog-upload-images.mjs +4 -4
  45. package/dist/es/components/drag-verify/drag-verify.mjs +1 -1
  46. package/dist/es/components/drawer/drawer.d.ts +7 -0
  47. package/dist/es/components/drawer/drawer.mjs +76 -28
  48. package/dist/es/components/drawer/drawer.vue.d.ts +9 -3
  49. package/dist/es/components/drawer/index.css +39 -18
  50. package/dist/es/components/easy-pagination/easy-pagination.mjs +1 -1
  51. package/dist/es/components/explorer/explorer.mjs +2 -2
  52. package/dist/es/components/explorer-column-table/explorer-column-table.mjs +4 -4
  53. package/dist/es/components/explorer-container/explorer-container.mjs +1 -1
  54. package/dist/es/components/explorer-filter/explorer-filter.mjs +2 -2
  55. package/dist/es/components/explorer-footer/explorer-footer.d.ts +1 -0
  56. package/dist/es/components/explorer-footer/explorer-footer.mjs +26 -13
  57. package/dist/es/components/explorer-footer/explorer-footer.vue.d.ts +2 -0
  58. package/dist/es/components/explorer-footer/index.css +3 -3
  59. package/dist/es/components/explorer-form/explorer-form.d.ts +7 -6
  60. package/dist/es/components/explorer-form/explorer-form.mjs +31 -56
  61. package/dist/es/components/explorer-form/explorer-form.vue.d.ts +192 -6
  62. package/dist/es/components/explorer-form/index.css +7 -7
  63. package/dist/es/components/explorer-list/explorer-list.d.ts +1 -0
  64. package/dist/es/components/explorer-list/explorer-list.mjs +3 -2
  65. package/dist/es/components/explorer-modal-form/explorer-modal-form.d.ts +24 -0
  66. package/dist/es/components/explorer-modal-form/explorer-modal-form.mjs +160 -0
  67. package/dist/es/components/explorer-modal-form/explorer-modal-form.vue.d.ts +584 -0
  68. package/dist/es/components/explorer-modal-form/index.css +6 -0
  69. package/dist/es/components/explorer-modal-form/index.d.ts +4 -0
  70. package/dist/es/components/explorer-modal-form/index.mjs +6 -0
  71. package/dist/es/components/explorer-panel/explorer-panel.mjs +5 -5
  72. package/dist/es/components/explorer-panel/index.css +6 -3
  73. package/dist/es/components/explorer-query/explorer-query.mjs +13 -2206
  74. package/dist/es/components/explorer-query/index.css +3 -3
  75. package/dist/es/components/explorer-table/explorer-table.d.ts +4 -0
  76. package/dist/es/components/explorer-table/explorer-table.mjs +22 -9
  77. package/dist/es/components/explorer-table/explorer-table.vue.d.ts +3 -0
  78. package/dist/es/components/explorer-tools/explorer-tools.mjs +13 -13
  79. package/dist/es/components/explorer-tools/index.css +8 -8
  80. package/dist/es/components/explorer-tree/explorer-tree.d.ts +1 -0
  81. package/dist/es/components/explorer-tree/explorer-tree.mjs +15 -14
  82. package/dist/es/components/explorer-tree/index.css +17 -14
  83. package/dist/es/components/icon-picker/icon-picker.mjs +9 -9
  84. package/dist/es/components/iconify-icon/iconify-icon.mjs +2 -2
  85. package/dist/es/components/image/image.mjs +4 -4
  86. package/dist/es/components/input/input.mjs +3 -3
  87. package/dist/es/components/input-number/input-number.mjs +4 -4
  88. package/dist/es/components/pca-picker/pca-picker.mjs +12 -12
  89. package/dist/es/components/screenfull/screenfull.mjs +3 -3
  90. package/dist/es/components/scrollbar/scrollbar.mjs +3 -3
  91. package/dist/es/components/select/select.mjs +5 -5
  92. package/dist/es/components/single-player/single-player.mjs +6 -6
  93. package/dist/es/components/splitter-panel/splitter-panel.mjs +2 -2
  94. package/dist/es/components/svg-icon/svg-icon.mjs +2 -2
  95. package/dist/es/components/switch/switch.mjs +2 -2
  96. package/dist/es/components/sync-scroll-container/sync-scroll-container.mjs +2 -2
  97. package/dist/es/components/tags/tags.mjs +8 -8
  98. package/dist/es/components/text-ellipsis/text-ellipsis.mjs +3 -3
  99. package/dist/es/components/thousand-input/thousand-input.mjs +2 -2
  100. package/dist/es/components/tinymce/tinymce.mjs +3 -3
  101. package/dist/es/components/tree-picker/tree-picker.mjs +9 -9
  102. package/dist/es/components/upload-file/upload-file.mjs +2 -2
  103. package/dist/es/index.d.ts +1 -0
  104. package/dist/es/index.mjs +34 -32
  105. package/dist/global.d.ts +1 -0
  106. package/dist/index.css +112 -73
  107. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import './index.css'
2
2
  import '../../chunk/By7FMB3I.mjs';
3
- import { v as vLoading } from '../../chunk/CwXV7M2F.mjs';
4
- import { defineComponent, ref, useTemplateRef, watch, onBeforeUnmount, withDirectives, createElementBlock, openBlock, normalizeClass, createElementVNode, createVNode, createBlock, createCommentVNode, renderSlot, createTextVNode, toDisplayString, unref, withCtx, mergeProps } from 'vue';
3
+ import { v as vLoading } from '../../chunk/CaA5lDme.mjs';
4
+ import { defineComponent, ref, useTemplateRef, withDirectives, createElementBlock, openBlock, normalizeClass, createElementVNode, createVNode, createBlock, createCommentVNode, renderSlot, createTextVNode, toDisplayString, unref, withCtx, mergeProps } from 'vue';
5
5
  import { ElForm } from 'element-plus';
6
6
  import { C as Component$2 } from '../button/button.mjs';
7
7
  import { C as Component$1 } from '../iconify-icon/iconify-icon.mjs';
@@ -15,67 +15,42 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
15
15
  icon: { default: "fluent:form-48-regular" },
16
16
  form: {},
17
17
  formProps: {},
18
- initialValues: {},
19
- autoInitial: { type: Boolean, default: true },
20
- defaultEditing: { type: Boolean },
21
- labelPosition: { default: "top" },
22
- onCancel: { type: Function, default: () => {
23
- } },
24
- onSave: { type: Function, default: () => {
25
- } }
18
+ disabled: { type: Boolean },
19
+ editable: { type: Boolean, default: true },
20
+ editing: { type: Boolean, default: true },
21
+ loading: { type: Boolean, default: false },
22
+ labelPosition: { default: "top" }
26
23
  },
27
- emits: ["clickEdit"],
24
+ emits: ["cancel", "edit", "save"],
28
25
  setup(__props, { expose: __expose, emit: __emit }) {
29
26
  const props = __props;
30
27
  const emits = __emit;
31
- const isEditing = ref(false);
32
- const loading = ref(false);
28
+ const isEditing = ref(props.editing ?? true);
33
29
  const formRef = useTemplateRef("formRef");
34
30
  function handleEdit() {
35
- emits("clickEdit");
31
+ emits("edit");
36
32
  isEditing.value = true;
37
33
  }
38
34
  async function handleCancel() {
39
35
  formRef.value.resetFields();
40
- const cb = await props.onCancel();
41
36
  isEditing.value = false;
42
- typeof cb === "function" && await cb();
43
37
  }
44
38
  async function handleSave() {
45
39
  const valid = await formRef.value.validate();
46
40
  if (!valid) {
47
41
  return;
48
42
  }
49
- let cb = null;
50
- try {
51
- loading.value = true;
52
- cb = await props.onSave(props.form.fields);
53
- formRef.value?.setInitialValues(props.form.fields);
54
- isEditing.value = false;
55
- } finally {
56
- loading.value = false;
57
- }
58
- typeof cb === "function" && await cb();
43
+ emits("save", props.form.fields);
59
44
  }
60
- const editingWatch = watch(() => props.defaultEditing, (val) => {
61
- isEditing.value = val;
62
- }, { immediate: true });
63
- const autoInitialWatch = watch(() => props.form.fields, (val) => {
64
- props.autoInitial && formRef.value?.setInitialValues(val);
65
- }, { immediate: true });
66
- const initialValuesWatch = watch(() => props.initialValues, () => {
67
- props.initialValues && formRef.value?.setInitialValues(props.initialValues);
68
- }, { immediate: true, deep: true });
69
45
  __expose({
70
- toggleIsEditing: (val) => {
46
+ formRef,
47
+ update: (data) => {
48
+ formRef.value?.setInitialValues(data || props.form.fields);
49
+ },
50
+ toggleEditing: (val) => {
71
51
  isEditing.value = val ?? !isEditing.value;
72
52
  }
73
53
  });
74
- onBeforeUnmount(() => {
75
- initialValuesWatch.stop();
76
- autoInitialWatch.stop();
77
- editingWatch.stop();
78
- });
79
54
  return (_ctx, _cache) => {
80
55
  const _directive_loading = vLoading;
81
56
  return withDirectives((openBlock(), createElementBlock("div", {
@@ -99,9 +74,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
99
74
  createElementVNode("div", {
100
75
  class: normalizeClass(_ctx.$style.actions)
101
76
  }, [
102
- unref(isEditing) ? (openBlock(), createBlock(Component$2, {
77
+ renderSlot(_ctx.$slots, "action"),
78
+ __props.editable && unref(isEditing) ? (openBlock(), createBlock(Component$2, {
103
79
  key: 0,
104
- icon: { type: "el", name: "Close" },
80
+ icon: { name: "Close" },
105
81
  onClick: handleCancel
106
82
  }, {
107
83
  default: withCtx(() => [..._cache[0] || (_cache[0] = [
@@ -109,10 +85,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
109
85
  ])]),
110
86
  _: 1
111
87
  })) : createCommentVNode("", true),
112
- unref(isEditing) ? (openBlock(), createBlock(Component$2, {
88
+ __props.editable && unref(isEditing) ? (openBlock(), createBlock(Component$2, {
113
89
  key: 1,
90
+ icon: { name: "Check" },
114
91
  type: "primary",
115
- icon: { type: "el", name: "Check" },
116
92
  onClick: handleSave
117
93
  }, {
118
94
  default: withCtx(() => [..._cache[1] || (_cache[1] = [
@@ -120,18 +96,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
120
96
  ])]),
121
97
  _: 1
122
98
  })) : createCommentVNode("", true),
123
- !unref(isEditing) ? (openBlock(), createBlock(Component$2, {
99
+ __props.editable && !unref(isEditing) ? (openBlock(), createBlock(Component$2, {
124
100
  key: 2,
101
+ icon: { name: "EditPen" },
125
102
  type: "primary",
126
- icon: { type: "el", name: "Edit" },
127
103
  onClick: handleEdit
128
104
  }, {
129
105
  default: withCtx(() => [..._cache[2] || (_cache[2] = [
130
106
  createTextVNode("编辑", -1)
131
107
  ])]),
132
108
  _: 1
133
- })) : createCommentVNode("", true),
134
- renderSlot(_ctx.$slots, "action")
109
+ })) : createCommentVNode("", true)
135
110
  ], 2)
136
111
  ], 2),
137
112
  createVNode(Component$3, { always: "" }, {
@@ -142,7 +117,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
142
117
  }, __props.formProps, {
143
118
  model: __props.form.fields,
144
119
  rules: __props.form.rules,
145
- disabled: !unref(isEditing),
120
+ disabled: __props.disabled || !unref(isEditing) || !__props.editable,
146
121
  "require-asterisk-position": "right",
147
122
  "label-position": __props.labelPosition
148
123
  }), {
@@ -155,19 +130,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
155
130
  _: 3
156
131
  })
157
132
  ], 2)), [
158
- [_directive_loading, unref(loading)]
133
+ [_directive_loading, __props.loading]
159
134
  ]);
160
135
  };
161
136
  }
162
137
  });
163
138
 
164
- /* unplugin-vue-components disabled */const header = "_header_19l5u_8";
165
- const icon = "_icon_19l5u_25";
166
- const actions = "_actions_19l5u_31";
139
+ /* unplugin-vue-components disabled */const header = "_header_2wrpk_8";
140
+ const icon = "_icon_2wrpk_25";
141
+ const actions = "_actions_2wrpk_31";
167
142
  const style0 = {
168
- "explorer-form": "_explorer-form_19l5u_1",
143
+ "explorer-form": "_explorer-form_2wrpk_1",
169
144
  header: header,
170
- "header-container": "_header-container_19l5u_21",
145
+ "header-container": "_header-container_2wrpk_21",
171
146
  icon: icon,
172
147
  actions: actions
173
148
  };
@@ -193,17 +193,203 @@ declare function __VLS_template(): {
193
193
  };
194
194
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
195
195
  declare const __VLS_component: import('vue').DefineComponent<IExplorerFormProps, {
196
- toggleIsEditing: (val?: boolean) => void;
196
+ formRef: Readonly<globalThis.ShallowRef<({
197
+ $: import('vue').ComponentInternalInstance;
198
+ $data: {};
199
+ $props: Partial<{
200
+ readonly disabled: boolean;
201
+ readonly inline: boolean;
202
+ readonly labelWidth: import('element-plus/es/utils/index.mjs').EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
203
+ readonly labelPosition: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "left" | "right" | "top", unknown>;
204
+ readonly inlineMessage: boolean;
205
+ readonly showMessage: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>;
206
+ readonly requireAsteriskPosition: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "left" | "right", unknown>;
207
+ readonly labelSuffix: string;
208
+ readonly validateOnRuleChange: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>;
209
+ readonly scrollIntoViewOptions: import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions) | ((new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions))[], unknown, unknown>;
210
+ readonly statusIcon: boolean;
211
+ readonly hideRequiredAsterisk: boolean;
212
+ readonly scrollToError: boolean;
213
+ }> & Omit<{
214
+ readonly disabled: boolean;
215
+ readonly inline: boolean;
216
+ readonly labelPosition: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "right" | "top" | "left", unknown>;
217
+ readonly requireAsteriskPosition: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "right" | "left", unknown>;
218
+ readonly labelWidth: import('element-plus/es/utils/index.mjs').EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
219
+ readonly labelSuffix: string;
220
+ readonly inlineMessage: boolean;
221
+ readonly statusIcon: boolean;
222
+ readonly showMessage: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>;
223
+ readonly validateOnRuleChange: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>;
224
+ readonly hideRequiredAsterisk: boolean;
225
+ readonly scrollToError: boolean;
226
+ readonly scrollIntoViewOptions: import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions) | ((new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions))[], unknown, unknown>;
227
+ readonly size?: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "" | "small" | "default" | "large", unknown> | undefined;
228
+ readonly rules?: Partial<Record<string, import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemRule>>> | undefined;
229
+ readonly model?: Record<string, any> | undefined;
230
+ onValidate?: ((prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => any) | undefined | undefined;
231
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "disabled" | "inline" | "labelPosition" | "requireAsteriskPosition" | "labelWidth" | "labelSuffix" | "inlineMessage" | "statusIcon" | "showMessage" | "validateOnRuleChange" | "hideRequiredAsterisk" | "scrollToError" | "scrollIntoViewOptions">;
232
+ $attrs: {
233
+ [x: string]: unknown;
234
+ };
235
+ $refs: {
236
+ [x: string]: unknown;
237
+ };
238
+ $slots: Readonly<{
239
+ [name: string]: globalThis.Slot | undefined;
240
+ }>;
241
+ $root: ComponentPublicInstance | null;
242
+ $parent: ComponentPublicInstance | null;
243
+ $host: Element | null;
244
+ $emit: (event: "validate", prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => void;
245
+ $el: any;
246
+ $options: import('vue').ComponentOptionsBase<Readonly<globalThis.ExtractPropTypes<{
247
+ readonly model: ObjectConstructor;
248
+ readonly rules: {
249
+ readonly type: import('vue').PropType<Partial<Record<string, import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemRule>>>>;
250
+ readonly required: false;
251
+ readonly validator: ((val: unknown) => boolean) | undefined;
252
+ __epPropKey: true;
253
+ };
254
+ readonly labelPosition: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, "left" | "right" | "top", unknown, "right", boolean>;
255
+ readonly requireAsteriskPosition: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, "left" | "right", unknown, "left", boolean>;
256
+ readonly labelWidth: import('element-plus/es/utils/index.mjs').EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
257
+ readonly labelSuffix: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
258
+ readonly inline: BooleanConstructor;
259
+ readonly inlineMessage: BooleanConstructor;
260
+ readonly statusIcon: BooleanConstructor;
261
+ readonly showMessage: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
262
+ readonly validateOnRuleChange: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
263
+ readonly hideRequiredAsterisk: BooleanConstructor;
264
+ readonly scrollToError: BooleanConstructor;
265
+ readonly scrollIntoViewOptions: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions) | ((new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions))[], unknown, unknown, true, boolean>;
266
+ readonly size: {
267
+ readonly type: import('vue').PropType<import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "" | "small" | "default" | "large", unknown>>;
268
+ readonly required: false;
269
+ readonly validator: ((val: unknown) => boolean) | undefined;
270
+ __epPropKey: true;
271
+ };
272
+ readonly disabled: BooleanConstructor;
273
+ }>> & {
274
+ onValidate?: ((prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => any) | undefined;
275
+ }, {
276
+ validate: (callback?: import('element-plus').FormValidateCallback) => import('element-plus').FormValidationResult;
277
+ validateField: (props?: import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemProp>, callback?: import('element-plus').FormValidateCallback) => import('element-plus').FormValidationResult;
278
+ resetFields: (props?: import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemProp>) => void;
279
+ clearValidate: (props?: import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemProp>) => void;
280
+ scrollToField: (prop: import('element-plus').FormItemProp) => void;
281
+ getField: (prop: import('element-plus').FormItemProp) => import('element-plus').FormItemContext | undefined;
282
+ fields: import('vue').Reactive<import('element-plus').FormItemContext[]>;
283
+ setInitialValues: (initModel: Record<string, any>) => void;
284
+ }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
285
+ validate: (prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => void;
286
+ }, string, {
287
+ readonly disabled: boolean;
288
+ readonly inline: boolean;
289
+ readonly labelWidth: import('element-plus/es/utils/index.mjs').EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
290
+ readonly labelPosition: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "left" | "right" | "top", unknown>;
291
+ readonly inlineMessage: boolean;
292
+ readonly showMessage: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>;
293
+ readonly requireAsteriskPosition: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "left" | "right", unknown>;
294
+ readonly labelSuffix: string;
295
+ readonly validateOnRuleChange: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>;
296
+ readonly scrollIntoViewOptions: import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions) | ((new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions))[], unknown, unknown>;
297
+ readonly statusIcon: boolean;
298
+ readonly hideRequiredAsterisk: boolean;
299
+ readonly scrollToError: boolean;
300
+ }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
301
+ beforeCreate?: (() => void) | (() => void)[];
302
+ created?: (() => void) | (() => void)[];
303
+ beforeMount?: (() => void) | (() => void)[];
304
+ mounted?: (() => void) | (() => void)[];
305
+ beforeUpdate?: (() => void) | (() => void)[];
306
+ updated?: (() => void) | (() => void)[];
307
+ activated?: (() => void) | (() => void)[];
308
+ deactivated?: (() => void) | (() => void)[];
309
+ beforeDestroy?: (() => void) | (() => void)[];
310
+ beforeUnmount?: (() => void) | (() => void)[];
311
+ destroyed?: (() => void) | (() => void)[];
312
+ unmounted?: (() => void) | (() => void)[];
313
+ renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
314
+ renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
315
+ errorCaptured?: ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void)[];
316
+ };
317
+ $forceUpdate: () => void;
318
+ $nextTick: typeof import('vue').nextTick;
319
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
320
+ } & Readonly<{
321
+ readonly disabled: boolean;
322
+ readonly inline: boolean;
323
+ readonly labelWidth: import('element-plus/es/utils/index.mjs').EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
324
+ readonly labelPosition: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "left" | "right" | "top", unknown>;
325
+ readonly inlineMessage: boolean;
326
+ readonly showMessage: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>;
327
+ readonly requireAsteriskPosition: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "left" | "right", unknown>;
328
+ readonly labelSuffix: string;
329
+ readonly validateOnRuleChange: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>;
330
+ readonly scrollIntoViewOptions: import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions) | ((new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions))[], unknown, unknown>;
331
+ readonly statusIcon: boolean;
332
+ readonly hideRequiredAsterisk: boolean;
333
+ readonly scrollToError: boolean;
334
+ }> & Omit<Readonly<globalThis.ExtractPropTypes<{
335
+ readonly model: ObjectConstructor;
336
+ readonly rules: {
337
+ readonly type: import('vue').PropType<Partial<Record<string, import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemRule>>>>;
338
+ readonly required: false;
339
+ readonly validator: ((val: unknown) => boolean) | undefined;
340
+ __epPropKey: true;
341
+ };
342
+ readonly labelPosition: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, "left" | "right" | "top", unknown, "right", boolean>;
343
+ readonly requireAsteriskPosition: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, "left" | "right", unknown, "left", boolean>;
344
+ readonly labelWidth: import('element-plus/es/utils/index.mjs').EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
345
+ readonly labelSuffix: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
346
+ readonly inline: BooleanConstructor;
347
+ readonly inlineMessage: BooleanConstructor;
348
+ readonly statusIcon: BooleanConstructor;
349
+ readonly showMessage: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
350
+ readonly validateOnRuleChange: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
351
+ readonly hideRequiredAsterisk: BooleanConstructor;
352
+ readonly scrollToError: BooleanConstructor;
353
+ readonly scrollIntoViewOptions: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions) | ((new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions))[], unknown, unknown, true, boolean>;
354
+ readonly size: {
355
+ readonly type: import('vue').PropType<import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "" | "small" | "default" | "large", unknown>>;
356
+ readonly required: false;
357
+ readonly validator: ((val: unknown) => boolean) | undefined;
358
+ __epPropKey: true;
359
+ };
360
+ readonly disabled: BooleanConstructor;
361
+ }>> & {
362
+ onValidate?: ((prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => any) | undefined;
363
+ }, "disabled" | "inline" | "fields" | "labelPosition" | "requireAsteriskPosition" | "labelWidth" | "labelSuffix" | "inlineMessage" | "statusIcon" | "showMessage" | "validateOnRuleChange" | "hideRequiredAsterisk" | "scrollToError" | "scrollIntoViewOptions" | "validate" | "validateField" | "resetFields" | "clearValidate" | "scrollToField" | "getField" | "setInitialValues"> & import('vue').ShallowUnwrapRef<{
364
+ validate: (callback?: import('element-plus').FormValidateCallback) => import('element-plus').FormValidationResult;
365
+ validateField: (props?: import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemProp>, callback?: import('element-plus').FormValidateCallback) => import('element-plus').FormValidationResult;
366
+ resetFields: (props?: import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemProp>) => void;
367
+ clearValidate: (props?: import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemProp>) => void;
368
+ scrollToField: (prop: import('element-plus').FormItemProp) => void;
369
+ getField: (prop: import('element-plus').FormItemProp) => import('element-plus').FormItemContext | undefined;
370
+ fields: import('vue').Reactive<import('element-plus').FormItemContext[]>;
371
+ setInitialValues: (initModel: Record<string, any>) => void;
372
+ }> & {} & import('vue').ComponentCustomProperties & {} & {
373
+ $slots: {
374
+ default?: (props: {}) => any;
375
+ };
376
+ }) | null>>;
377
+ update: (data?: Record<string, any>) => void;
378
+ toggleEditing: (val?: boolean) => void;
197
379
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
198
- clickEdit: () => any;
380
+ cancel: () => any;
381
+ save: (data: Record<string, any>) => any;
382
+ edit: () => any;
199
383
  }, string, import('vue').PublicProps, Readonly<IExplorerFormProps> & Readonly<{
200
- onClickEdit?: (() => any) | undefined;
384
+ onCancel?: (() => any) | undefined;
385
+ onSave?: ((data: Record<string, any>) => any) | undefined;
386
+ onEdit?: (() => any) | undefined;
201
387
  }>, {
202
388
  icon: string;
203
- onCancel: () => void | Promise<void> | Promise<() => void | Promise<void>>;
204
- onSave: (data: Record<string, any>) => void | Promise<void> | Promise<() => void | Promise<void>>;
389
+ loading: boolean;
390
+ editable: boolean;
205
391
  labelPosition: import('element-plus').FormProps["labelPosition"];
206
- autoInitial: boolean;
392
+ editing: boolean;
207
393
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
208
394
  formRef: ({
209
395
  $: import('vue').ComponentInternalInstance;
@@ -1,11 +1,11 @@
1
1
  /* source: src/components/explorer-form/explorer-form.vue */
2
- ._explorer-form_19l5u_1 {
2
+ ._explorer-form_2wrpk_1 {
3
3
  display: flex;
4
4
  flex-direction: column;
5
5
  flex-grow: 1;
6
6
  height: 100px;
7
7
  }
8
- ._header_19l5u_8 {
8
+ ._header_2wrpk_8 {
9
9
  display: flex;
10
10
  align-items: center;
11
11
  justify-content: space-between;
@@ -17,19 +17,19 @@
17
17
  flex-wrap: wrap;
18
18
  row-gap: 8px;
19
19
  }
20
- ._header-container_19l5u_21 {
20
+ ._header-container_2wrpk_21 {
21
21
  font-size: var(--el-font-size-medium);
22
22
  }
23
- ._icon_19l5u_25 {
23
+ ._icon_2wrpk_25 {
24
24
  margin-right: 4px;
25
- font-size: 1.1em;
25
+ font-size: var(--el-font-size-extra-large);
26
26
  transform: translateY(1px);
27
27
  }
28
- ._actions_19l5u_31 {
28
+ ._actions_2wrpk_31 {
29
29
  display: flex;
30
30
  align-items: center;
31
31
  gap: 8px;
32
32
  }
33
- ._actions_19l5u_31 .el-button {
33
+ ._actions_2wrpk_31 .el-button {
34
34
  margin-left: 0 !important;
35
35
  }
@@ -10,6 +10,7 @@ export interface IExplorerListProps {
10
10
  actions?: ('create' | 'modify' | 'remove' | 'up' | 'down' | 'action')[];
11
11
  filterMethod?: (keyword: string, item: IExplorerListItem) => boolean;
12
12
  emptyText?: string;
13
+ pending?: boolean;
13
14
  loading?: boolean;
14
15
  loadingText?: string;
15
16
  highlightCurrent?: boolean;
@@ -6,7 +6,7 @@ import { C as Component$3 } from '../button/button.mjs';
6
6
  import { i as injectExplorerPanelState } from '../explorer-panel/explorer-panel2.mjs';
7
7
  import { C as Component$2 } from '../iconify-icon/iconify-icon.mjs';
8
8
  import { C as Component$1 } from '../scrollbar/scrollbar.mjs';
9
- import { E as ElIcon } from '../../chunk/D1MHFKtN.mjs';
9
+ import { E as ElIcon } from '../../chunk/C6xZotC7.mjs';
10
10
  import { _ as _export_sfc } from '../../chunk/pcqpp-6-.mjs';
11
11
 
12
12
  const _hoisted_1 = ["onClick"];
@@ -17,6 +17,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
17
17
  actions: { default: () => [] },
18
18
  filterMethod: {},
19
19
  emptyText: { default: "没有数据" },
20
+ pending: { type: Boolean },
20
21
  loading: { type: Boolean },
21
22
  loadingText: { default: "数据加载中..." },
22
23
  highlightCurrent: { type: Boolean, default: true },
@@ -110,7 +111,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
110
111
  ], 512), [
111
112
  [vShow, !__props.loading]
112
113
  ]),
113
- unref(isEmpty) && !__props.loading ? (openBlock(), createElementBlock("div", {
114
+ unref(isEmpty) && !__props.loading && !__props.pending ? (openBlock(), createElementBlock("div", {
114
115
  key: 0,
115
116
  class: normalizeClass(_ctx.$style.empty)
116
117
  }, toDisplayString(__props.emptyText), 3)) : createCommentVNode("", true),
@@ -0,0 +1,24 @@
1
+ import { FormProps } from 'element-plus';
2
+ import { Reactive } from 'vue';
3
+ export interface IExplorerModalFormProps {
4
+ modelValue: boolean;
5
+ type: 'dialog' | 'drawer';
6
+ title?: string;
7
+ icon?: string;
8
+ disabled?: boolean;
9
+ editable?: boolean;
10
+ editing?: boolean;
11
+ loading?: boolean;
12
+ form: Reactive<{
13
+ fields: Record<string, any>;
14
+ rules?: Record<string, any>;
15
+ }>;
16
+ formProps?: Partial<FormProps>;
17
+ labelPosition?: FormProps['labelPosition'];
18
+ }
19
+ export interface IExplorerModalFormEmits {
20
+ (e: 'update:modelValue', value: boolean): void;
21
+ (e: 'cancel'): void;
22
+ (e: 'edit'): void;
23
+ (e: 'save', data: Record<string, any>): void;
24
+ }
@@ -0,0 +1,160 @@
1
+ import './index.css'
2
+ import '../../chunk/By7FMB3I.mjs';
3
+ import { v as vLoading } from '../../chunk/CaA5lDme.mjs';
4
+ import { E as ElForm } from '../../chunk/Cb0n0U19.mjs';
5
+ import { defineComponent, useTemplateRef, ref, computed, watch, onUnmounted, createBlock, openBlock, resolveDynamicComponent, unref, mergeProps, isRef, withCtx, withDirectives, renderSlot, createCommentVNode, createTextVNode, createElementVNode, normalizeClass, toDisplayString } from 'vue';
6
+ import { C as Component$3 } from '../button/button.mjs';
7
+ import { C as Component$1 } from '../dialog/dialog.mjs';
8
+ import { C as Component$2 } from '../drawer/drawer.mjs';
9
+ import { C as Component$4 } from '../iconify-icon/iconify-icon.mjs';
10
+ import { useVModel } from '@vueuse/core';
11
+ import { _ as _export_sfc } from '../../chunk/pcqpp-6-.mjs';
12
+
13
+ const _sfc_main = /* @__PURE__ */ defineComponent({
14
+ __name: "explorer-modal-form",
15
+ props: {
16
+ modelValue: { type: Boolean },
17
+ type: {},
18
+ title: {},
19
+ icon: { default: "fluent:form-48-regular" },
20
+ disabled: { type: Boolean },
21
+ editable: { type: Boolean, default: true },
22
+ editing: { type: Boolean, default: true },
23
+ loading: { type: Boolean, default: false },
24
+ form: {},
25
+ formProps: {},
26
+ labelPosition: { default: "top" }
27
+ },
28
+ emits: ["update:modelValue", "cancel", "edit", "save"],
29
+ setup(__props, { expose: __expose, emit: __emit }) {
30
+ const props = __props;
31
+ const emits = __emit;
32
+ const modalVisible = useVModel(props, "modelValue", emits);
33
+ const formRef = useTemplateRef("formRef");
34
+ const isEditing = ref(false);
35
+ const component = computed(() => props.type === "dialog" ? Component$1 : Component$2);
36
+ function handleCancel() {
37
+ modalVisible.value = false;
38
+ emits("cancel");
39
+ }
40
+ async function handleSave() {
41
+ const valid = await formRef.value.validate();
42
+ if (!valid) {
43
+ return;
44
+ }
45
+ emits("save", props.form.fields);
46
+ }
47
+ function handleEdit() {
48
+ isEditing.value = true;
49
+ emits("edit");
50
+ }
51
+ const visibleWatch = watch(modalVisible, (val) => {
52
+ if (!val) {
53
+ return;
54
+ }
55
+ isEditing.value = props.editing ?? true;
56
+ }, { immediate: true });
57
+ __expose({ formRef });
58
+ onUnmounted(() => {
59
+ visibleWatch.stop();
60
+ });
61
+ return (_ctx, _cache) => {
62
+ const _component_ElForm = ElForm;
63
+ const _directive_loading = vLoading;
64
+ return openBlock(), createBlock(resolveDynamicComponent(unref(component)), mergeProps({
65
+ modelValue: unref(modalVisible),
66
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(modalVisible) ? modalVisible.value = $event : null)
67
+ }, _ctx.$attrs), {
68
+ title: withCtx(({ close }) => [
69
+ createElementVNode("div", {
70
+ class: normalizeClass(_ctx.$style["header-container"])
71
+ }, [
72
+ __props.icon ? (openBlock(), createBlock(Component$4, {
73
+ key: 0,
74
+ name: __props.icon,
75
+ class: normalizeClass(_ctx.$style.icon)
76
+ }, null, 8, ["name", "class"])) : createCommentVNode("", true),
77
+ renderSlot(_ctx.$slots, "title", { close }, () => [
78
+ createTextVNode(toDisplayString(__props.title), 1)
79
+ ])
80
+ ], 2)
81
+ ]),
82
+ footer: withCtx(() => [
83
+ renderSlot(_ctx.$slots, "action"),
84
+ unref(isEditing) ? (openBlock(), createBlock(Component$3, {
85
+ key: 0,
86
+ loading: __props.loading,
87
+ icon: { name: "Close" },
88
+ onClick: handleCancel
89
+ }, {
90
+ default: withCtx(() => [..._cache[1] || (_cache[1] = [
91
+ createTextVNode("取消", -1)
92
+ ])]),
93
+ _: 1
94
+ }, 8, ["loading"])) : createCommentVNode("", true),
95
+ unref(isEditing) ? (openBlock(), createBlock(Component$3, {
96
+ key: 1,
97
+ loading: __props.loading,
98
+ icon: { name: "Check" },
99
+ type: "primary",
100
+ onClick: handleSave
101
+ }, {
102
+ default: withCtx(() => [..._cache[2] || (_cache[2] = [
103
+ createTextVNode("保存", -1)
104
+ ])]),
105
+ _: 1
106
+ }, 8, ["loading"])) : createCommentVNode("", true),
107
+ __props.editable && !unref(isEditing) ? (openBlock(), createBlock(Component$3, {
108
+ key: 2,
109
+ loading: __props.loading,
110
+ icon: { name: "EditPen" },
111
+ type: "primary",
112
+ onClick: handleEdit
113
+ }, {
114
+ default: withCtx(() => [..._cache[3] || (_cache[3] = [
115
+ createTextVNode("编辑", -1)
116
+ ])]),
117
+ _: 1
118
+ }, 8, ["loading"])) : createCommentVNode("", true)
119
+ ]),
120
+ default: withCtx(() => [
121
+ withDirectives((openBlock(), createBlock(_component_ElForm, mergeProps({
122
+ ref_key: "formRef",
123
+ ref: formRef,
124
+ "require-asterisk-position": "right",
125
+ "label-position": __props.labelPosition,
126
+ disabled: __props.disabled || !unref(isEditing)
127
+ }, __props.formProps, {
128
+ model: __props.form.fields,
129
+ rules: __props.form.rules
130
+ }), {
131
+ default: withCtx(() => [
132
+ renderSlot(_ctx.$slots, "default")
133
+ ]),
134
+ _: 3
135
+ }, 16, ["label-position", "disabled", "model", "rules"])), [
136
+ [_directive_loading, __props.loading]
137
+ ])
138
+ ]),
139
+ _: 3
140
+ }, 16, ["modelValue"]);
141
+ };
142
+ }
143
+ });
144
+
145
+ /* unplugin-vue-components disabled */const icon = "_icon_uetpd_1";
146
+ const style0 = {
147
+ icon: icon
148
+ };
149
+
150
+ const cssModules = {
151
+ "$style": style0
152
+ };
153
+ const Component = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
154
+
155
+ const __vite_glob_0_26 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
156
+ __proto__: null,
157
+ default: Component
158
+ }, Symbol.toStringTag, { value: 'Module' }));
159
+
160
+ export { Component as C, __vite_glob_0_26 as _ };