@qin-ui/antd-vue-pro 2.5.2 → 2.5.3

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.
package/es/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import "./antd-vue-pro.css";
2
- import { defineComponent, createBlock, renderSlot, openBlock, resolveDynamicComponent, normalizeProps, mergeProps, withCtx, createElementBlock, Fragment, createTextVNode, toDisplayString, inject, computed, toValue, ref, createCommentVNode, createSlots, renderList, createVNode, toRaw, resolveComponent, unref, provide, useSlots, shallowRef, onUpdated, triggerRef, createElementVNode, withModifiers, normalizeStyle, nextTick, mergeModels, useModel, watch, getCurrentInstance, onMounted, normalizeClass, guardReactiveProps } from "vue";
3
- import { Transfer, TreeSelect, Slider, Switch, RadioGroup, CheckboxGroup, TimePicker, RangePicker, DatePicker, Cascader, Select, InputNumber, InputPassword, InputSearch, Textarea, Input, Row, Col, FormItem, Form, Space, Button, theme, Dropdown, Menu, MenuItem, Checkbox, MenuDivider, Table } from "ant-design-vue";
4
- import { useForm as useForm$1, resolveLocaleName, zhTW, enUS, zhCN, format, useReactiveAttrs, cloneDeep, getObject, InjectionFormSlotsKey, isPlainObject, resolveFieldIdentity, isObjectItem, toPath, createFormProxy, InjectionFormKey, omitBy, camelizeProperties, useFields as useFields$1, useFormRef as useFormRef$1, useSearchFormExpand, pick, isPromise, useTable as useTable$1, omit } from "@qin-ui/pro-components-core";
2
+ import { defineComponent, createBlock, renderSlot, openBlock, resolveDynamicComponent, normalizeProps, mergeProps, withCtx, createElementBlock, Fragment, createTextVNode, toDisplayString, inject, computed, toValue, ref, onBeforeUnmount, createCommentVNode, createSlots, renderList, createVNode, watch, h, toRaw, unref, provide, useSlots, shallowRef, onUpdated, triggerRef, createElementVNode, withModifiers, normalizeStyle, nextTick, mergeModels, useModel, getCurrentInstance, onMounted, normalizeClass, guardReactiveProps } from "vue";
3
+ import { Transfer, TreeSelect, Slider, Switch, RadioGroup, CheckboxGroup, TimePicker, RangePicker, DatePicker, Cascader, Select, InputNumber, InputPassword, InputSearch, Textarea, Input, FormItem, Col, Row, Form, Space, Button, theme, Dropdown, Menu, MenuItem, Checkbox, MenuDivider, Table } from "ant-design-vue";
4
+ import { useForm as useForm$1, resolveLocaleName, zhTW, enUS, zhCN, format, useReactiveAttrs, cloneDeep, getObject, InjectionFormSlotsKey, isPlainObject, resolveFieldIdentity, toPath, isObjectItem, InjectionFormKey, createFormProxy, omitBy, camelizeProperties, useFields as useFields$1, useFormRef as useFormRef$1, useSearchFormExpand, pick, isPromise, useTable as useTable$1, omit } from "@qin-ui/pro-components-core";
5
5
  import { enUS as enUS2, useFormData, zhCN as zhCN2, zhTW as zhTW2 } from "@qin-ui/pro-components-core";
6
6
  import { useConfigContextInject } from "ant-design-vue/es/config-provider/context";
7
7
  import { useInjectFormItemContext, useProvideFormItemContext } from "ant-design-vue/es/form/FormItemContext";
@@ -154,7 +154,7 @@ const ensureInjectConfig = (key) => {
154
154
  DYNAMIC_INJECT_CONFIG[key] = created;
155
155
  return created;
156
156
  };
157
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
157
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
158
158
  ...{ name: "ContainerFragment", inheritAttrs: false },
159
159
  __name: "index",
160
160
  props: {
@@ -172,7 +172,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
172
172
  };
173
173
  }
174
174
  });
175
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
175
+ const _sfc_main$e = /* @__PURE__ */ defineComponent({
176
176
  ...{ name: "SlotComponent", inheritAttrs: false },
177
177
  __name: "index",
178
178
  props: {
@@ -265,7 +265,7 @@ const useLocale = () => {
265
265
  };
266
266
  return { t, lang };
267
267
  };
268
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
268
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
269
269
  ...{ name: "BaseField", inheritAttrs: false },
270
270
  __name: "index",
271
271
  props: {
@@ -278,6 +278,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
278
278
  // 原始值直接传递,引用值克隆快照
279
279
  typeof val === "object" && val !== null ? cloneDeep(val) : val
280
280
  );
281
+ const isSameValue = (a, b) => a === b || a !== a && b !== b;
281
282
  const props = __props;
282
283
  const { t } = useLocale();
283
284
  const form = useForm(false);
@@ -291,9 +292,21 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
291
292
  },
292
293
  clearValidate: formItemContext.clearValidate
293
294
  });
295
+ let pendingChange = false;
296
+ let pendingChangeValue;
294
297
  const triggerFormItemChange = (value2) => {
295
- emit("field-value-change", value2);
298
+ pendingChangeValue = value2;
299
+ if (pendingChange) return;
300
+ pendingChange = true;
301
+ queueMicrotask(() => {
302
+ if (!pendingChange) return;
303
+ pendingChange = false;
304
+ emit("field-value-change", pendingChangeValue);
305
+ });
296
306
  };
307
+ onBeforeUnmount(() => {
308
+ pendingChange = false;
309
+ });
297
310
  const attrs = useReactiveAttrs();
298
311
  const pickerVal = attrs.picker;
299
312
  const injectConfigKey = typeof props.component === "string" ? [props.component, pickerVal].filter(Boolean).join(".") : "";
@@ -315,12 +328,17 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
315
328
  let newVal = val;
316
329
  const { valueFormatter } = groupedAttrs.value;
317
330
  const setFormatter = typeof valueFormatter === "function" ? valueFormatter : typeof valueFormatter === "object" && typeof (valueFormatter == null ? void 0 : valueFormatter.set) === "function" ? valueFormatter.set : void 0;
331
+ const oldVal = (_a = form.getFormData) == null ? void 0 : _a.call(form, props.path);
318
332
  if (setFormatter) {
319
- const oldVal = setFormatter.length > 1 ? cloneDeepIfObject((_a = form.getFormData) == null ? void 0 : _a.call(form, props.path)) : void 0;
320
- newVal = setFormatter(val, oldVal);
333
+ newVal = setFormatter(
334
+ val,
335
+ setFormatter.length > 1 ? cloneDeepIfObject(oldVal) : void 0
336
+ );
337
+ }
338
+ if (!isSameValue(newVal, oldVal)) {
339
+ (_b = form.setFormData) == null ? void 0 : _b.call(form, props.path, newVal);
340
+ triggerFormItemChange(newVal);
321
341
  }
322
- (_b = form.setFormData) == null ? void 0 : _b.call(form, props.path, newVal);
323
- triggerFormItemChange(newVal);
324
342
  const { onUpdateValue } = groupedAttrs.value;
325
343
  if (typeof onUpdateValue === "function") {
326
344
  onUpdateValue(val);
@@ -378,7 +396,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
378
396
  getComponentComputedProps: () => groupedAttrs.value.attrs
379
397
  });
380
398
  return (_ctx, _cache) => {
381
- return openBlock(), createBlock(_sfc_main$e, {
399
+ return openBlock(), createBlock(_sfc_main$f, {
382
400
  component: groupedAttrs.value.componentContainer,
383
401
  path: props.path
384
402
  }, {
@@ -394,7 +412,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
394
412
  return {
395
413
  name,
396
414
  fn: withCtx((scoped) => [
397
- createVNode(_sfc_main$d, mergeProps({
415
+ createVNode(_sfc_main$e, mergeProps({
398
416
  path: props.path
399
417
  }, scoped, { component: slot }), null, 16, ["path", "component"])
400
418
  ])
@@ -407,8 +425,206 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
407
425
  };
408
426
  }
409
427
  });
428
+ const formItemPropKeys = Object.keys(formItemProps()).concat([
429
+ "formItemContainer"
430
+ ]);
431
+ const gridItemPropKeys = Object.keys(colProps());
432
+ const gridItemPropKeySet = new Set(gridItemPropKeys);
433
+ const formItemPropKeySet = new Set(formItemPropKeys);
434
+ const formItemSlotKeySet = new Set(FORM_ITEM_SLOT_KEYS);
435
+ const groupField = (field, rawInject) => {
436
+ let gridItemProps2 = {};
437
+ let formItemProps2 = {};
438
+ const componentProps = { slots: {} };
439
+ const formItemSlots = {};
440
+ if (isPlainObject(field)) {
441
+ const { path: _path, name: _name, fields, formItemClass, formItemStyle, hidden, span, getFormItemRef, getComponentRef, getFormItemComputedProps, getComponentComputedProps, slots = {}, formItemDataAttrs = {}, componentDataAttrs = {}, extraProps, formItemContainer, ...rest } = field;
442
+ const { class: injectClassName, style: injectStyle, span: injectSpan, xs, sm, md, lg, xl, xxl, formItemContainer: injectFormItemContainer, ...injectRest } = rawInject;
443
+ const initGridItemProps = span || span === 0 ? { span } : { xs, sm, md, lg, xl, xxl, span: injectSpan };
444
+ gridItemProps2 = fields ? { ...initGridItemProps, span: span ?? 24 } : initGridItemProps;
445
+ const container = formItemContainer ?? injectFormItemContainer;
446
+ formItemProps2 = mergeProps(
447
+ injectRest,
448
+ { class: injectClassName, style: injectStyle },
449
+ { class: toValue(formItemClass), style: toValue(formItemStyle) },
450
+ formItemDataAttrs
451
+ );
452
+ Object.keys(rest).forEach((k) => {
453
+ if (gridItemPropKeySet.has(k)) {
454
+ gridItemProps2[k] = rest[k];
455
+ } else if (formItemPropKeySet.has(k)) {
456
+ formItemProps2[k] = rest[k];
457
+ } else {
458
+ componentProps[k] = rest[k];
459
+ }
460
+ });
461
+ Object.assign(componentProps, componentDataAttrs);
462
+ Object.keys(slots).forEach((k) => {
463
+ if (formItemSlotKeySet.has(k)) {
464
+ formItemSlots[k] = slots[k];
465
+ } else {
466
+ componentProps.slots[k] = slots[k];
467
+ }
468
+ });
469
+ if (formItemSlots.label && formItemProps2.label !== void 0) {
470
+ delete formItemProps2.label;
471
+ }
472
+ return {
473
+ path: resolveFieldIdentity(field),
474
+ gridItemProps: gridItemProps2,
475
+ formItemProps: formItemProps2,
476
+ formItemSlots,
477
+ componentProps,
478
+ formItemContainer: container,
479
+ rawField: field
480
+ };
481
+ }
482
+ return {
483
+ path: resolveFieldIdentity(field),
484
+ gridItemProps: gridItemProps2,
485
+ formItemProps: formItemProps2,
486
+ formItemSlots,
487
+ componentProps,
488
+ rawField: field
489
+ };
490
+ };
491
+ function useGroupedField(field) {
492
+ const config = INJECT_CONFIG["pro-form-item"];
493
+ const injectFormItemProps = inject(config.injectionKey, config.default);
494
+ return computed(
495
+ () => groupField(toValue(field), toValue(injectFormItemProps) || {})
496
+ );
497
+ }
498
+ const _sfc_main$c = defineComponent({
499
+ name: "BaseFormItem",
500
+ inheritAttrs: false,
501
+ props: {
502
+ /** 字段配置 */
503
+ field: { type: Object, required: true },
504
+ /** 是否启用网格布局 */
505
+ grid: {
506
+ type: [Boolean, Object],
507
+ default: void 0
508
+ },
509
+ /** 上层下发的禁用状态 */
510
+ disabled: { type: Boolean, default: void 0 },
511
+ /** FormItem 实例登记回调 */
512
+ setFormItemRef: {
513
+ type: Function,
514
+ default: void 0
515
+ },
516
+ /** 控件实例登记回调 */
517
+ setComponentRef: {
518
+ type: Function,
519
+ default: void 0
520
+ }
521
+ },
522
+ setup(props) {
523
+ const grouped = useGroupedField(() => props.field);
524
+ const enableGrid = computed(() => !!props.grid);
525
+ const componentKey = computed(() => {
526
+ const field = props.field;
527
+ const component = toValue(field.component);
528
+ if (typeof component !== "string") return "component-object";
529
+ return `string:${component}:${toValue(field.picker) ?? ""}`;
530
+ });
531
+ let formItemInstance;
532
+ const setItemRef = (el) => {
533
+ var _a;
534
+ formItemInstance = el;
535
+ (_a = props.setFormItemRef) == null ? void 0 : _a.call(
536
+ props,
537
+ props.field,
538
+ el,
539
+ () => grouped.value.formItemProps
540
+ );
541
+ };
542
+ const setFieldRef = (el) => {
543
+ var _a;
544
+ (_a = props.setComponentRef) == null ? void 0 : _a.call(props, props.field, el);
545
+ };
546
+ watch(
547
+ () => props.field,
548
+ (next, prev) => {
549
+ var _a, _b;
550
+ if (!prev || prev === next) return;
551
+ (_a = props.setFormItemRef) == null ? void 0 : _a.call(props, prev, null, () => grouped.value.formItemProps);
552
+ (_b = props.setComponentRef) == null ? void 0 : _b.call(props, prev, null);
553
+ },
554
+ { flush: "pre" }
555
+ );
556
+ const onFieldValueChange = () => {
557
+ var _a, _b;
558
+ if (((_a = grouped.value.formItemProps) == null ? void 0 : _a.autoLink) === false) return;
559
+ (_b = formItemInstance == null ? void 0 : formItemInstance.onFieldChange) == null ? void 0 : _b.call(formItemInstance);
560
+ };
561
+ const withContainer = (node, component, containerProps) => component ? h(component, containerProps, { default: () => node }) : node;
562
+ const renderFormItemSlots = (groupedField) => {
563
+ const slots = {};
564
+ Object.entries(groupedField.formItemSlots).forEach(([name, slot]) => {
565
+ slots[name] = (scope) => h(_sfc_main$e, {
566
+ path: groupedField.path,
567
+ component: slot,
568
+ ...scope || {}
569
+ });
570
+ });
571
+ slots.default = () => {
572
+ const field = props.field;
573
+ if (field.fields) {
574
+ return h(_sfc_main$b, {
575
+ grid: field.grid ?? props.grid,
576
+ fields: field.fields,
577
+ disabled: toValue(field.disabled)
578
+ });
579
+ }
580
+ return h(_sfc_main$d, {
581
+ key: componentKey.value,
582
+ ref: setFieldRef,
583
+ ...groupedField.componentProps,
584
+ path: groupedField.path,
585
+ onFieldValueChange
586
+ });
587
+ };
588
+ return slots;
589
+ };
590
+ return () => {
591
+ const groupedField = grouped.value;
592
+ let node = h(
593
+ FormItem,
594
+ {
595
+ ...groupedField.formItemProps,
596
+ ref: setItemRef,
597
+ name: toPath(groupedField.path),
598
+ path: groupedField.path
599
+ },
600
+ renderFormItemSlots(groupedField)
601
+ );
602
+ node = withContainer(node, groupedField.formItemContainer, {
603
+ path: groupedField.path
604
+ });
605
+ node = withContainer(
606
+ node,
607
+ enableGrid.value ? Col : void 0,
608
+ groupedField.gridItemProps
609
+ );
610
+ return node;
611
+ };
612
+ }
613
+ });
410
614
  const fieldKeyMap = /* @__PURE__ */ new WeakMap();
411
615
  let fieldKeySeed = 0;
616
+ const rowKeyMap = /* @__PURE__ */ new WeakMap();
617
+ let rowKeySeed = 0;
618
+ const getRowKey = (row) => {
619
+ const raw = toRaw(row);
620
+ let key = rowKeyMap.get(raw);
621
+ if (key === void 0) {
622
+ key = ++rowKeySeed;
623
+ rowKeyMap.set(raw, key);
624
+ }
625
+ return key;
626
+ };
627
+ const isIndexSegment = (segment) => /^(?:0|[1-9]\d*)$/.test(segment);
412
628
  const getFieldKey = (field) => {
413
629
  if (field === null || typeof field !== "object")
414
630
  return `raw_${String(field)}`;
@@ -420,82 +636,35 @@ const getFieldKey = (field) => {
420
636
  }
421
637
  return key;
422
638
  };
423
- const formItemPropKeys = Object.keys(formItemProps()).concat([
424
- "formItemContainer"
425
- ]);
426
- const gridItemPropKeys = Object.keys(colProps());
427
- const gridItemPropKeySet = new Set(gridItemPropKeys);
428
- const formItemPropKeySet = new Set(formItemPropKeys);
429
- const formItemSlotKeySet = new Set(FORM_ITEM_SLOT_KEYS);
430
- function useGroupFieldAttrs(validFields) {
431
- const config = INJECT_CONFIG["pro-form-item"];
432
- const injectFormItemProps = inject(config.injectionKey, config.default);
433
- return computed(() => {
434
- const rawInject = toValue(injectFormItemProps) || {};
435
- return validFields.value.map((field) => {
436
- let gridItemProps2 = {};
437
- let formItemProps2 = {};
438
- const componentProps = { slots: {} };
439
- const formItemSlots = {};
440
- if (isPlainObject(field)) {
441
- const { path: _path, name: _name, fields, formItemClass, formItemStyle, hidden, span, getFormItemRef, getComponentRef, getFormItemComputedProps, getComponentComputedProps, slots = {}, formItemDataAttrs = {}, componentDataAttrs = {}, extraProps, formItemContainer, ...rest } = field;
442
- const { class: injectClassName, style: injectStyle, span: injectSpan, xs, sm, md, lg, xl, xxl, formItemContainer: injectFormItemContainer, ...injectRest } = rawInject;
443
- const initGridItemProps = span || span === 0 ? { span } : { xs, sm, md, lg, xl, xxl, span: injectSpan };
444
- gridItemProps2 = fields ? { ...initGridItemProps, span: span ?? 24 } : initGridItemProps;
445
- const container = formItemContainer ?? injectFormItemContainer;
446
- formItemProps2 = mergeProps(
447
- injectRest,
448
- { class: injectClassName, style: injectStyle },
449
- { class: toValue(formItemClass), style: toValue(formItemStyle) },
450
- formItemDataAttrs
451
- );
452
- Object.keys(rest).forEach((k) => {
453
- if (gridItemPropKeySet.has(k)) {
454
- gridItemProps2[k] = rest[k];
455
- } else if (formItemPropKeySet.has(k)) {
456
- formItemProps2[k] = rest[k];
457
- } else {
458
- componentProps[k] = rest[k];
459
- }
460
- });
461
- Object.assign(componentProps, componentDataAttrs);
462
- Object.keys(slots).forEach((k) => {
463
- if (formItemSlotKeySet.has(k)) {
464
- formItemSlots[k] = slots[k];
465
- } else {
466
- componentProps.slots[k] = slots[k];
467
- }
468
- });
469
- if (formItemSlots.label && formItemProps2.label !== void 0) {
470
- delete formItemProps2.label;
471
- }
472
- const raw2 = resolveFieldIdentity(field);
473
- return {
474
- path: raw2,
475
- gridItemProps: gridItemProps2,
476
- formItemProps: formItemProps2,
477
- formItemSlots,
478
- componentProps,
479
- formItemContainer: container,
480
- rawField: field,
481
- renderKey: getFieldKey(field)
482
- };
483
- }
484
- const raw = resolveFieldIdentity(field);
485
- return {
486
- path: raw,
487
- gridItemProps: gridItemProps2,
488
- formItemProps: formItemProps2,
489
- formItemSlots,
490
- componentProps,
491
- rawField: field,
492
- renderKey: getFieldKey(field)
493
- };
494
- });
495
- });
496
- }
639
+ const getFieldDataKey = (field, rawFormData) => {
640
+ const path = resolveFieldIdentity(field);
641
+ if (!path || rawFormData === null || rawFormData === void 0) {
642
+ return getFieldKey(field);
643
+ }
644
+ const segments = toPath(path);
645
+ let node = rawFormData;
646
+ const rowIds = [];
647
+ let lastRowIndex = -1;
648
+ for (let i = 0; i < segments.length; i++) {
649
+ if (Array.isArray(node)) {
650
+ const segment = segments[i];
651
+ if (!isIndexSegment(segment)) break;
652
+ const element = node[Number(segment)];
653
+ if (element === null || typeof element !== "object") break;
654
+ rowIds.push(getRowKey(toRaw(element)));
655
+ lastRowIndex = i;
656
+ node = element;
657
+ continue;
658
+ }
659
+ if (node === null || typeof node !== "object") break;
660
+ node = node[segments[i]];
661
+ }
662
+ if (lastRowIndex === -1) return getFieldKey(field);
663
+ const rest = segments.slice(lastRowIndex + 1).join(".");
664
+ return `data:${rowIds.join("/")}:${rest}`;
665
+ };
497
666
  const _sfc_main$b = /* @__PURE__ */ defineComponent({
498
- ...{ name: "BaseFormItem", inheritAttrs: false },
667
+ ...{ name: "BaseFormItems", inheritAttrs: false },
499
668
  __name: "index",
500
669
  props: {
501
670
  grid: { type: [Boolean, Object], default: void 0 },
@@ -512,6 +681,20 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
512
681
  )
513
682
  )
514
683
  );
684
+ const injectedForm = inject(InjectionFormKey, void 0);
685
+ const renderedFields = computed(() => {
686
+ const rawFormData = (injectedForm == null ? void 0 : injectedForm.formData) ? toRaw(injectedForm.formData) : void 0;
687
+ const seen = /* @__PURE__ */ new Map();
688
+ return validFields.value.map((field) => {
689
+ const baseKey = getFieldDataKey(field, rawFormData);
690
+ const count = seen.get(baseKey) ?? 0;
691
+ seen.set(baseKey, count + 1);
692
+ return {
693
+ field,
694
+ key: count === 0 ? baseKey : `${String(baseKey)}#${count}`
695
+ };
696
+ });
697
+ });
515
698
  useProviderDisabled(computed(() => props.disabled));
516
699
  const config = INJECT_CONFIG["pro-form"];
517
700
  const injectFormConfig = inject(config.injectionKey, config.default);
@@ -545,20 +728,14 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
545
728
  }
546
729
  }
547
730
  };
548
- const onFieldValueChange = (item) => {
549
- var _a, _b;
550
- if (((_a = item.formItemProps) == null ? void 0 : _a.autoLink) === false) return;
551
- const instance = formItemInstanceMap.get(toRaw(item.rawField));
552
- (_b = instance == null ? void 0 : instance.onFieldChange) == null ? void 0 : _b.call(instance);
553
- };
554
- const setFormItemRef = (field, el, formItemProps2) => {
731
+ const setFormItemRef = (field, el, getFormItemProps) => {
555
732
  if (!field || typeof field !== "object") return;
556
733
  const raw = toRaw(field);
557
734
  if (el) {
558
735
  formItemInstanceMap.set(raw, el);
559
736
  defineFieldAccessors(raw, {
560
737
  getFormItemRef: () => formItemInstanceMap.get(raw),
561
- getFormItemComputedProps: () => formItemProps2
738
+ getFormItemComputedProps: getFormItemProps
562
739
  });
563
740
  } else {
564
741
  formItemInstanceMap.delete(raw);
@@ -587,69 +764,31 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
587
764
  delete raw.getComponentComputedProps;
588
765
  }
589
766
  };
590
- const groupedFields = useGroupFieldAttrs(validFields);
591
767
  return (_ctx, _cache) => {
592
- const _component_BaseFormItem = resolveComponent("BaseFormItem");
593
- return openBlock(), createBlock(_sfc_main$e, mergeProps({
594
- component: enableGrid.value ? unref(Row) : void 0
595
- }, computedGridProps.value), {
768
+ return enableGrid.value ? (openBlock(), createBlock(unref(Row), normalizeProps(mergeProps({ key: 0 }, computedGridProps.value)), {
596
769
  default: withCtx(() => [
597
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(groupedFields), (item) => {
598
- return openBlock(), createBlock(_sfc_main$e, mergeProps({
599
- key: item.renderKey,
600
- component: enableGrid.value ? unref(Col) : void 0
601
- }, { ref_for: true }, item.gridItemProps), {
602
- default: withCtx(() => [
603
- createVNode(_sfc_main$e, {
604
- component: item.formItemContainer,
605
- path: item.path
606
- }, {
607
- default: withCtx(() => [
608
- createVNode(unref(FormItem), mergeProps({ ref_for: true }, item.formItemProps, {
609
- ref_for: true,
610
- ref: (el) => setFormItemRef(item.rawField, el, item.formItemProps),
611
- name: unref(toPath)(item.path),
612
- path: item.path
613
- }), createSlots({
614
- default: withCtx(() => [
615
- item.rawField.fields ? (openBlock(), createBlock(_component_BaseFormItem, {
616
- key: 0,
617
- grid: item.rawField.grid ?? props.grid,
618
- fields: item.rawField.fields,
619
- disabled: toValue(item.rawField.disabled)
620
- }, null, 8, ["grid", "fields", "disabled"])) : (openBlock(), createBlock(_sfc_main$c, mergeProps({
621
- key: 1,
622
- ref_for: true,
623
- ref: (el) => setComponentRef(item.rawField, el)
624
- }, { ref_for: true }, item.componentProps, {
625
- path: item.path,
626
- onFieldValueChange: ($event) => onFieldValueChange(item)
627
- }), null, 16, ["path", "onFieldValueChange"]))
628
- ]),
629
- _: 2
630
- }, [
631
- renderList(item.formItemSlots, (slot, name) => {
632
- return {
633
- name,
634
- fn: withCtx((scoped) => [
635
- createVNode(_sfc_main$d, mergeProps({
636
- path: item.path,
637
- component: slot
638
- }, { ref_for: true }, scoped), null, 16, ["path", "component"])
639
- ])
640
- };
641
- })
642
- ]), 1040, ["name", "path"])
643
- ]),
644
- _: 2
645
- }, 1032, ["component", "path"])
646
- ]),
647
- _: 2
648
- }, 1040, ["component"]);
770
+ (openBlock(true), createElementBlock(Fragment, null, renderList(renderedFields.value, (item) => {
771
+ return openBlock(), createBlock(_sfc_main$c, {
772
+ key: item.key,
773
+ field: item.field,
774
+ grid: props.grid,
775
+ disabled: props.disabled,
776
+ "set-form-item-ref": setFormItemRef,
777
+ "set-component-ref": setComponentRef
778
+ }, null, 8, ["field", "grid", "disabled"]);
649
779
  }), 128))
650
780
  ]),
651
781
  _: 1
652
- }, 16, ["component"]);
782
+ }, 16)) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(renderedFields.value, (item) => {
783
+ return openBlock(), createBlock(_sfc_main$c, {
784
+ key: item.key,
785
+ field: item.field,
786
+ grid: props.grid,
787
+ disabled: props.disabled,
788
+ "set-form-item-ref": setFormItemRef,
789
+ "set-component-ref": setComponentRef
790
+ }, null, 8, ["field", "grid", "disabled"]);
791
+ }), 128));
653
792
  };
654
793
  }
655
794
  });
@@ -1488,7 +1627,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1488
1627
  class: normalizeClass(["pro-table", unref(attrs).class]),
1489
1628
  style: normalizeStyle(unref(attrs).style)
1490
1629
  }, [
1491
- searchFormVisible.value || _ctx.$slots["search-form"] ? (openBlock(), createBlock(_sfc_main$e, {
1630
+ searchFormVisible.value || _ctx.$slots["search-form"] ? (openBlock(), createBlock(_sfc_main$f, {
1492
1631
  key: 0,
1493
1632
  component: computedSearchFormConfig.value.container
1494
1633
  }, {
@@ -1511,7 +1650,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1511
1650
  }),
1512
1651
  _: 3
1513
1652
  }, 8, ["component"])) : createCommentVNode("", true),
1514
- createVNode(_sfc_main$e, { component: computedTableContainer.value }, {
1653
+ createVNode(_sfc_main$f, { component: computedTableContainer.value }, {
1515
1654
  default: withCtx(() => [
1516
1655
  createElementVNode("div", _hoisted_1, [
1517
1656
  _ctx.$slots["button-bar"] ? (openBlock(), createElementBlock("div", _hoisted_2, [
@@ -1664,12 +1803,12 @@ const index = {
1664
1803
  }
1665
1804
  };
1666
1805
  export {
1667
- _sfc_main$e as ContainerFragment,
1806
+ _sfc_main$f as ContainerFragment,
1668
1807
  LOCALE_INJECT_KEY,
1669
1808
  _sfc_main as ProComponentProvider,
1670
1809
  _sfc_main$a as ProForm,
1671
1810
  ProTable,
1672
- _sfc_main$d as SlotComponent,
1811
+ _sfc_main$e as SlotComponent,
1673
1812
  index as default,
1674
1813
  enUS2 as enUS,
1675
1814
  useFields,