@tmagic/form 1.7.0-beta.2 → 1.7.0-beta.4

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.
@@ -3145,7 +3145,7 @@
3145
3145
  newData[v][sortKey] = i;
3146
3146
  }
3147
3147
  }
3148
- return newData;
3148
+ return cloneDeep(newData);
3149
3149
  };
3150
3150
  const sortChange = (data, { prop, order }) => {
3151
3151
  if (order === "ascending") {
@@ -3155,17 +3155,65 @@
3155
3155
  }
3156
3156
  };
3157
3157
 
3158
- const _hoisted_1$d = ["data-tmagic-id", "data-tmagic-form-item-prop"];
3159
- const _hoisted_2$7 = ["innerHTML", "title"];
3158
+ const _hoisted_1$e = {
3159
+ key: 0,
3160
+ style: { "display": "inline-flex", "align-items": "center" }
3161
+ };
3162
+ const _hoisted_2$8 = ["innerHTML", "title"];
3160
3163
  const _hoisted_3$6 = ["innerHTML"];
3161
- const _hoisted_4$3 = ["innerHTML"];
3162
- const _hoisted_5$3 = ["innerHTML", "title"];
3164
+ const _hoisted_4$5 = ["innerHTML", "title"];
3165
+ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
3166
+ __name: "FormLabel",
3167
+ props: {
3168
+ tip: {},
3169
+ type: {},
3170
+ useLabel: { type: Boolean },
3171
+ text: {},
3172
+ labelTitle: {}
3173
+ },
3174
+ setup(__props) {
3175
+ return (_ctx, _cache) => {
3176
+ return __props.tip ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$e, [
3177
+ vue.createElementVNode("span", {
3178
+ innerHTML: __props.type === "checkbox" && !__props.useLabel ? "" : __props.text,
3179
+ title: __props.labelTitle
3180
+ }, null, 8, _hoisted_2$8),
3181
+ __props.tip && (__props.type !== "checkbox" || __props.useLabel) ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicTooltip), {
3182
+ key: 0,
3183
+ placement: "top"
3184
+ }, {
3185
+ content: vue.withCtx(() => [
3186
+ vue.createElementVNode("div", { innerHTML: __props.tip }, null, 8, _hoisted_3$6)
3187
+ ]),
3188
+ default: vue.withCtx(() => [
3189
+ vue.createVNode(vue.unref(design.TMagicIcon), { style: { "margin-left": "5px", "display": "flex" } }, {
3190
+ default: vue.withCtx(() => [
3191
+ vue.createVNode(vue.unref(iconsVue.WarningFilled))
3192
+ ]),
3193
+ _: 1
3194
+ /* STABLE */
3195
+ })
3196
+ ]),
3197
+ _: 1
3198
+ /* STABLE */
3199
+ })) : vue.createCommentVNode("v-if", true)
3200
+ ])) : (vue.openBlock(), vue.createElementBlock("span", {
3201
+ key: 1,
3202
+ innerHTML: __props.type === "checkbox" && !__props.useLabel ? "" : __props.text,
3203
+ title: __props.labelTitle
3204
+ }, null, 8, _hoisted_4$5));
3205
+ };
3206
+ }
3207
+ });
3208
+
3209
+ const _hoisted_1$d = ["data-tmagic-id", "data-tmagic-form-item-prop"];
3210
+ const _hoisted_2$7 = ["innerHTML"];
3211
+ const _hoisted_3$5 = ["innerHTML"];
3212
+ const _hoisted_4$4 = ["innerHTML"];
3213
+ const _hoisted_5$3 = ["innerHTML"];
3163
3214
  const _hoisted_6$1 = ["innerHTML"];
3164
3215
  const _hoisted_7$1 = ["innerHTML"];
3165
- const _hoisted_8$1 = ["innerHTML", "title"];
3166
- const _hoisted_9 = ["innerHTML"];
3167
- const _hoisted_10 = ["innerHTML"];
3168
- const _hoisted_11 = {
3216
+ const _hoisted_8$1 = {
3169
3217
  key: 5,
3170
3218
  style: { "text-align": "center" }
3171
3219
  };
@@ -3412,10 +3460,13 @@
3412
3460
  class: { "tmagic-form-hidden": `${itemLabelWidth.value}` === "0" || !text.value }
3413
3461
  }), {
3414
3462
  label: vue.withCtx(() => [
3415
- vue.createElementVNode("span", {
3416
- innerHTML: type.value === "checkbox" && !__props.config.useLabel ? "" : text.value,
3417
- title: __props.config.labelTitle
3418
- }, null, 8, _hoisted_2$7)
3463
+ vue.createVNode(_sfc_main$B, {
3464
+ tip: __props.config.tip,
3465
+ type: type.value,
3466
+ "use-label": __props.config.useLabel,
3467
+ "label-title": __props.config.labelTitle,
3468
+ text: text.value
3469
+ }, null, 8, ["tip", "type", "use-label", "label-title", "text"])
3419
3470
  ]),
3420
3471
  default: vue.withCtx(() => [
3421
3472
  tooltip.value.text ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicTooltip), {
@@ -3425,36 +3476,38 @@
3425
3476
  content: vue.withCtx(() => [
3426
3477
  vue.createElementVNode("div", {
3427
3478
  innerHTML: tooltip.value.text
3428
- }, null, 8, _hoisted_3$6)
3479
+ }, null, 8, _hoisted_2$7)
3429
3480
  ]),
3430
3481
  default: vue.withCtx(() => [
3431
3482
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tagName.value), vue.mergeProps(fieldsProps.value, {
3432
3483
  model: __props.model,
3433
3484
  "last-values": __props.lastValues,
3485
+ "is-compare": __props.isCompare,
3434
3486
  onChange: onChangeHandler,
3435
3487
  onAddDiffCount
3436
- }), null, 16, ["model", "last-values"]))
3488
+ }), null, 16, ["model", "last-values", "is-compare"]))
3437
3489
  ]),
3438
3490
  _: 1
3439
3491
  /* STABLE */
3440
3492
  }, 8, ["placement"])) : (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tagName.value), vue.mergeProps({ key: 1 }, fieldsProps.value, {
3441
3493
  model: __props.model,
3442
3494
  "last-values": __props.lastValues,
3495
+ "is-compare": __props.isCompare,
3443
3496
  onChange: onChangeHandler,
3444
3497
  onAddDiffCount
3445
- }), null, 16, ["model", "last-values"]))
3498
+ }), null, 16, ["model", "last-values", "is-compare"]))
3446
3499
  ]),
3447
3500
  _: 1
3448
3501
  /* STABLE */
3449
3502
  }, 16, ["class"]),
3450
- __props.config.tip ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicTooltip), {
3503
+ __props.config.tip && type.value === "checkbox" && !__props.config.useLabel ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicTooltip), {
3451
3504
  key: 0,
3452
- placement: "left"
3505
+ placement: "top"
3453
3506
  }, {
3454
3507
  content: vue.withCtx(() => [
3455
3508
  vue.createElementVNode("div", {
3456
3509
  innerHTML: __props.config.tip
3457
- }, null, 8, _hoisted_4$3)
3510
+ }, null, 8, _hoisted_3$5)
3458
3511
  ]),
3459
3512
  default: vue.withCtx(() => [
3460
3513
  vue.createVNode(vue.unref(design.TMagicIcon), { style: { "line-height": "40px", "margin-left": "5px" } }, {
@@ -3481,10 +3534,13 @@
3481
3534
  class: { "tmagic-form-hidden": `${itemLabelWidth.value}` === "0" || !text.value, "show-diff": true }
3482
3535
  }), {
3483
3536
  label: vue.withCtx(() => [
3484
- vue.createElementVNode("span", {
3485
- innerHTML: type.value === "checkbox" ? "" : text.value,
3486
- title: __props.config.labelTitle
3487
- }, null, 8, _hoisted_5$3)
3537
+ vue.createVNode(_sfc_main$B, {
3538
+ tip: __props.config.tip,
3539
+ type: type.value,
3540
+ "use-label": __props.config.useLabel,
3541
+ "label-title": __props.config.labelTitle,
3542
+ text: text.value
3543
+ }, null, 8, ["tip", "type", "use-label", "label-title", "text"])
3488
3544
  ]),
3489
3545
  default: vue.withCtx(() => [
3490
3546
  tooltip.value.text ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicTooltip), {
@@ -3494,7 +3550,7 @@
3494
3550
  content: vue.withCtx(() => [
3495
3551
  vue.createElementVNode("div", {
3496
3552
  innerHTML: tooltip.value.text
3497
- }, null, 8, _hoisted_6$1)
3553
+ }, null, 8, _hoisted_4$4)
3498
3554
  ]),
3499
3555
  default: vue.withCtx(() => [
3500
3556
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tagName.value), vue.mergeProps(fieldsProps.value, {
@@ -3512,14 +3568,14 @@
3512
3568
  _: 1
3513
3569
  /* STABLE */
3514
3570
  }, 16, ["class"]),
3515
- __props.config.tip ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicTooltip), {
3571
+ __props.config.tip && type.value === "checkbox" && !__props.config.useLabel ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicTooltip), {
3516
3572
  key: 0,
3517
- placement: "left"
3573
+ placement: "top"
3518
3574
  }, {
3519
3575
  content: vue.withCtx(() => [
3520
3576
  vue.createElementVNode("div", {
3521
3577
  innerHTML: __props.config.tip
3522
- }, null, 8, _hoisted_7$1)
3578
+ }, null, 8, _hoisted_5$3)
3523
3579
  ]),
3524
3580
  default: vue.withCtx(() => [
3525
3581
  vue.createVNode(vue.unref(design.TMagicIcon), { style: { "line-height": "40px", "margin-left": "5px" } }, {
@@ -3539,10 +3595,13 @@
3539
3595
  class: { "tmagic-form-hidden": `${itemLabelWidth.value}` === "0" || !text.value, "show-diff": true }
3540
3596
  }), {
3541
3597
  label: vue.withCtx(() => [
3542
- vue.createElementVNode("span", {
3543
- innerHTML: type.value === "checkbox" ? "" : text.value,
3544
- title: __props.config.labelTitle
3545
- }, null, 8, _hoisted_8$1)
3598
+ vue.createVNode(_sfc_main$B, {
3599
+ tip: __props.config.tip,
3600
+ type: type.value,
3601
+ "use-label": __props.config.useLabel,
3602
+ "label-title": __props.config.labelTitle,
3603
+ text: text.value
3604
+ }, null, 8, ["tip", "type", "use-label", "label-title", "text"])
3546
3605
  ]),
3547
3606
  default: vue.withCtx(() => [
3548
3607
  tooltip.value.text ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicTooltip), {
@@ -3552,7 +3611,7 @@
3552
3611
  content: vue.withCtx(() => [
3553
3612
  vue.createElementVNode("div", {
3554
3613
  innerHTML: tooltip.value.text
3555
- }, null, 8, _hoisted_9)
3614
+ }, null, 8, _hoisted_6$1)
3556
3615
  ]),
3557
3616
  default: vue.withCtx(() => [
3558
3617
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tagName.value), vue.mergeProps(fieldsProps.value, {
@@ -3570,14 +3629,14 @@
3570
3629
  _: 1
3571
3630
  /* STABLE */
3572
3631
  }, 16, ["style", "class"]),
3573
- __props.config.tip ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicTooltip), {
3632
+ __props.config.tip && type.value === "checkbox" && !__props.config.useLabel ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicTooltip), {
3574
3633
  key: 1,
3575
- placement: "left"
3634
+ placement: "top"
3576
3635
  }, {
3577
3636
  content: vue.withCtx(() => [
3578
3637
  vue.createElementVNode("div", {
3579
3638
  innerHTML: __props.config.tip
3580
- }, null, 8, _hoisted_10)
3639
+ }, null, 8, _hoisted_7$1)
3581
3640
  ]),
3582
3641
  default: vue.withCtx(() => [
3583
3642
  vue.createVNode(vue.unref(design.TMagicIcon), { style: { "line-height": "40px", "margin-left": "5px" } }, {
@@ -3625,7 +3684,7 @@
3625
3684
  64
3626
3685
  /* STABLE_FRAGMENT */
3627
3686
  )) : vue.createCommentVNode("v-if", true),
3628
- __props.config.expand && type.value !== "fieldset" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11, [
3687
+ __props.config.expand && type.value !== "fieldset" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$1, [
3629
3688
  vue.createVNode(vue.unref(design.TMagicButton), {
3630
3689
  type: "primary",
3631
3690
  size: "small",
@@ -3651,8 +3710,8 @@
3651
3710
 
3652
3711
  const _hoisted_1$c = ["innerHTML"];
3653
3712
  const _hoisted_2$6 = ["innerHTML"];
3654
- const _hoisted_3$5 = { key: 1 };
3655
- const _hoisted_4$2 = ["innerHTML"];
3713
+ const _hoisted_3$4 = { key: 1 };
3714
+ const _hoisted_4$3 = ["innerHTML"];
3656
3715
  const _hoisted_5$2 = ["innerHTML"];
3657
3716
  const _hoisted_6 = {
3658
3717
  key: 2,
@@ -3752,10 +3811,10 @@
3752
3811
  ]),
3753
3812
  _: 1
3754
3813
  /* STABLE */
3755
- })) : (vue.openBlock(), vue.createElementBlock("legend", _hoisted_3$5, [
3814
+ })) : (vue.openBlock(), vue.createElementBlock("legend", _hoisted_3$4, [
3756
3815
  vue.createElementVNode("span", {
3757
3816
  innerHTML: __props.config.legend
3758
- }, null, 8, _hoisted_4$2),
3817
+ }, null, 8, _hoisted_4$3),
3759
3818
  __props.config.extra ? (vue.openBlock(), vue.createElementBlock("span", {
3760
3819
  key: 0,
3761
3820
  innerHTML: __props.config.extra,
@@ -3884,9 +3943,8 @@
3884
3943
  }
3885
3944
  });
3886
3945
 
3887
- const _hoisted_1$b = { class: "m-fields-group-list-item" };
3888
- const _hoisted_2$5 = { style: { "text-align": "right", "margin-top": "20px" } };
3889
- const _hoisted_3$4 = ["innerHTML"];
3946
+ const _hoisted_1$b = { style: { "text-align": "right", "margin-top": "20px" } };
3947
+ const _hoisted_2$5 = ["innerHTML"];
3890
3948
  const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
3891
3949
  ...{
3892
3950
  name: "MFormGroupListItem"
@@ -3965,211 +4023,220 @@
3965
4023
  emit("swap-item", props.index, moveSpecifyLocationIndex.value - 1);
3966
4024
  };
3967
4025
  return (_ctx, _cache) => {
3968
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [
3969
- vue.createElementVNode("div", null, [
3970
- vue.createVNode(vue.unref(design.TMagicButton), {
3971
- link: "",
3972
- disabled: __props.disabled,
3973
- onClick: expandHandler
3974
- }, {
3975
- default: vue.withCtx(() => [
3976
- vue.createVNode(vue.unref(design.TMagicIcon), null, {
3977
- default: vue.withCtx(() => [
3978
- expand.value ? (vue.openBlock(), vue.createBlock(vue.unref(iconsVue.CaretBottom), { key: 0 })) : (vue.openBlock(), vue.createBlock(vue.unref(iconsVue.CaretRight), { key: 1 }))
3979
- ]),
3980
- _: 1
3981
- /* STABLE */
3982
- }),
3983
- vue.createTextVNode(
3984
- vue.toDisplayString(title.value),
3985
- 1
3986
- /* TEXT */
3987
- )
3988
- ]),
3989
- _: 1
3990
- /* STABLE */
3991
- }, 8, ["disabled"]),
3992
- vue.withDirectives(vue.createVNode(vue.unref(design.TMagicButton), {
3993
- type: "danger",
3994
- size: "small",
3995
- link: "",
3996
- icon: vue.unref(iconsVue.Delete),
3997
- disabled: __props.disabled,
3998
- onClick: removeHandler
3999
- }, null, 8, ["icon", "disabled"]), [
4000
- [vue.vShow, showDelete.value]
4001
- ]),
4002
- copyable.value ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicButton), {
4003
- key: 0,
4004
- link: "",
4005
- size: "small",
4006
- type: "primary",
4007
- icon: vue.unref(iconsVue.DocumentCopy),
4008
- disabled: __props.disabled,
4009
- onClick: copyHandler
4010
- }, {
4011
- default: vue.withCtx(() => [..._cache[6] || (_cache[6] = [
4012
- vue.createTextVNode(
4013
- "复制",
4014
- -1
4015
- /* CACHED */
4016
- )
4017
- ])]),
4018
- _: 1
4019
- /* STABLE */
4020
- }, 8, ["icon", "disabled"])) : vue.createCommentVNode("v-if", true),
4021
- movable.value ? (vue.openBlock(), vue.createElementBlock(
4022
- vue.Fragment,
4023
- { key: 1 },
4024
- [
4025
- vue.withDirectives(vue.createVNode(vue.unref(design.TMagicButton), {
4026
- link: "",
4027
- size: "small",
4028
- disabled: __props.disabled,
4029
- icon: vue.unref(iconsVue.CaretTop),
4030
- onClick: _cache[0] || (_cache[0] = ($event) => changeOrder(-1))
4031
- }, {
4032
- default: vue.withCtx(() => [..._cache[7] || (_cache[7] = [
4033
- vue.createTextVNode(
4034
- "上移",
4035
- -1
4036
- /* CACHED */
4037
- )
4038
- ])]),
4039
- _: 1
4040
- /* STABLE */
4041
- }, 8, ["disabled", "icon"]), [
4042
- [vue.vShow, __props.index !== 0]
4026
+ return vue.openBlock(), vue.createBlock(vue.unref(design.TMagicCard), {
4027
+ class: "m-fields-group-list-item",
4028
+ "body-style": { display: expand.value ? "block" : "none" }
4029
+ }, {
4030
+ header: vue.withCtx(() => [
4031
+ vue.createElementVNode("div", null, [
4032
+ vue.createVNode(vue.unref(design.TMagicButton), {
4033
+ link: "",
4034
+ disabled: __props.disabled,
4035
+ onClick: expandHandler
4036
+ }, {
4037
+ default: vue.withCtx(() => [
4038
+ vue.createVNode(vue.unref(design.TMagicIcon), null, {
4039
+ default: vue.withCtx(() => [
4040
+ expand.value ? (vue.openBlock(), vue.createBlock(vue.unref(iconsVue.CaretBottom), { key: 0 })) : (vue.openBlock(), vue.createBlock(vue.unref(iconsVue.CaretRight), { key: 1 }))
4041
+ ]),
4042
+ _: 1
4043
+ /* STABLE */
4044
+ }),
4045
+ vue.createTextVNode(
4046
+ vue.toDisplayString(title.value),
4047
+ 1
4048
+ /* TEXT */
4049
+ )
4043
4050
  ]),
4044
- vue.withDirectives(vue.createVNode(vue.unref(design.TMagicButton), {
4045
- link: "",
4046
- size: "small",
4047
- disabled: __props.disabled,
4048
- icon: vue.unref(iconsVue.CaretBottom),
4049
- onClick: _cache[1] || (_cache[1] = ($event) => changeOrder(1))
4050
- }, {
4051
- default: vue.withCtx(() => [..._cache[8] || (_cache[8] = [
4052
- vue.createTextVNode(
4053
- "下移",
4054
- -1
4055
- /* CACHED */
4056
- )
4057
- ])]),
4058
- _: 1
4059
- /* STABLE */
4060
- }, 8, ["disabled", "icon"]), [
4061
- [vue.vShow, __props.index !== length.value - 1]
4062
- ])
4063
- ],
4064
- 64
4065
- /* STABLE_FRAGMENT */
4066
- )) : vue.createCommentVNode("v-if", true),
4067
- __props.config.moveSpecifyLocation ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicPopover), {
4068
- key: 2,
4069
- trigger: "click",
4070
- placement: "top",
4071
- width: "200",
4072
- visible: moveSpecifyLocationVisible.value
4073
- }, {
4074
- reference: vue.withCtx(() => [
4075
- vue.createVNode(vue.unref(design.TMagicButton), {
4076
- link: "",
4077
- size: "small",
4078
- type: "primary",
4079
- icon: vue.unref(iconsVue.Position),
4080
- disabled: __props.disabled,
4081
- onClick: _cache[2] || (_cache[2] = ($event) => moveSpecifyLocationVisible.value = true)
4082
- }, {
4083
- default: vue.withCtx(() => [..._cache[9] || (_cache[9] = [
4084
- vue.createTextVNode(
4085
- "移动至",
4086
- -1
4087
- /* CACHED */
4088
- )
4089
- ])]),
4090
- _: 1
4091
- /* STABLE */
4092
- }, 8, ["icon", "disabled"])
4051
+ _: 1
4052
+ /* STABLE */
4053
+ }, 8, ["disabled"]),
4054
+ vue.withDirectives(vue.createVNode(vue.unref(design.TMagicButton), {
4055
+ type: "danger",
4056
+ size: "small",
4057
+ link: "",
4058
+ icon: vue.unref(iconsVue.Delete),
4059
+ disabled: __props.disabled,
4060
+ onClick: removeHandler
4061
+ }, null, 8, ["icon", "disabled"]), [
4062
+ [vue.vShow, showDelete.value]
4093
4063
  ]),
4094
- default: vue.withCtx(() => [
4095
- vue.createElementVNode("div", null, [
4096
- vue.createElementVNode("div", null, [
4097
- _cache[10] || (_cache[10] = vue.createTextVNode(
4098
- " ",
4099
- -1
4100
- /* CACHED */
4101
- )),
4102
- vue.createVNode(vue.unref(design.TMagicInputNumber), {
4103
- style: { "margin": "0 5px" },
4104
- modelValue: moveSpecifyLocationIndex.value,
4105
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => moveSpecifyLocationIndex.value = $event),
4106
- size: "small",
4107
- min: 1,
4108
- disabled: __props.disabled
4109
- }, null, 8, ["modelValue", "disabled"]),
4110
- _cache[11] || (_cache[11] = vue.createTextVNode(
4111
- "行 ",
4112
- -1
4113
- /* CACHED */
4114
- ))
4064
+ copyable.value ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicButton), {
4065
+ key: 0,
4066
+ link: "",
4067
+ size: "small",
4068
+ type: "primary",
4069
+ icon: vue.unref(iconsVue.DocumentCopy),
4070
+ disabled: __props.disabled,
4071
+ onClick: copyHandler
4072
+ }, {
4073
+ default: vue.withCtx(() => [..._cache[6] || (_cache[6] = [
4074
+ vue.createTextVNode(
4075
+ "复制",
4076
+ -1
4077
+ /* CACHED */
4078
+ )
4079
+ ])]),
4080
+ _: 1
4081
+ /* STABLE */
4082
+ }, 8, ["icon", "disabled"])) : vue.createCommentVNode("v-if", true),
4083
+ movable.value ? (vue.openBlock(), vue.createElementBlock(
4084
+ vue.Fragment,
4085
+ { key: 1 },
4086
+ [
4087
+ vue.withDirectives(vue.createVNode(vue.unref(design.TMagicButton), {
4088
+ link: "",
4089
+ size: "small",
4090
+ disabled: __props.disabled,
4091
+ icon: vue.unref(iconsVue.CaretTop),
4092
+ onClick: _cache[0] || (_cache[0] = ($event) => changeOrder(-1))
4093
+ }, {
4094
+ default: vue.withCtx(() => [..._cache[7] || (_cache[7] = [
4095
+ vue.createTextVNode(
4096
+ "上移",
4097
+ -1
4098
+ /* CACHED */
4099
+ )
4100
+ ])]),
4101
+ _: 1
4102
+ /* STABLE */
4103
+ }, 8, ["disabled", "icon"]), [
4104
+ [vue.vShow, __props.index !== 0]
4115
4105
  ]),
4116
- vue.createElementVNode("div", _hoisted_2$5, [
4117
- vue.createVNode(vue.unref(design.TMagicButton), {
4118
- size: "small",
4119
- text: "",
4120
- onClick: _cache[4] || (_cache[4] = ($event) => moveSpecifyLocationVisible.value = false)
4121
- }, {
4122
- default: vue.withCtx(() => [..._cache[12] || (_cache[12] = [
4123
- vue.createTextVNode(
4124
- "取消",
4125
- -1
4126
- /* CACHED */
4127
- )
4128
- ])]),
4129
- _: 1
4130
- /* STABLE */
4131
- }),
4132
- vue.createVNode(vue.unref(design.TMagicButton), {
4133
- size: "small",
4134
- type: "primary",
4135
- onClick: moveSpecifyLocationHandler
4136
- }, {
4137
- default: vue.withCtx(() => [..._cache[13] || (_cache[13] = [
4138
- vue.createTextVNode(
4139
- "确认",
4140
- -1
4141
- /* CACHED */
4142
- )
4143
- ])]),
4144
- _: 1
4145
- /* STABLE */
4146
- })
4106
+ vue.withDirectives(vue.createVNode(vue.unref(design.TMagicButton), {
4107
+ link: "",
4108
+ size: "small",
4109
+ disabled: __props.disabled,
4110
+ icon: vue.unref(iconsVue.CaretBottom),
4111
+ onClick: _cache[1] || (_cache[1] = ($event) => changeOrder(1))
4112
+ }, {
4113
+ default: vue.withCtx(() => [..._cache[8] || (_cache[8] = [
4114
+ vue.createTextVNode(
4115
+ "下移",
4116
+ -1
4117
+ /* CACHED */
4118
+ )
4119
+ ])]),
4120
+ _: 1
4121
+ /* STABLE */
4122
+ }, 8, ["disabled", "icon"]), [
4123
+ [vue.vShow, __props.index !== length.value - 1]
4147
4124
  ])
4148
- ])
4149
- ]),
4150
- _: 1
4151
- /* STABLE */
4152
- }, 8, ["visible"])) : vue.createCommentVNode("v-if", true),
4153
- itemExtra.value ? (vue.openBlock(), vue.createElementBlock("span", {
4154
- key: 3,
4155
- innerHTML: itemExtra.value,
4156
- class: "m-form-tip"
4157
- }, null, 8, _hoisted_3$4)) : vue.createCommentVNode("v-if", true)
4125
+ ],
4126
+ 64
4127
+ /* STABLE_FRAGMENT */
4128
+ )) : vue.createCommentVNode("v-if", true),
4129
+ __props.config.moveSpecifyLocation ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicPopover), {
4130
+ key: 2,
4131
+ trigger: "click",
4132
+ placement: "top",
4133
+ width: "200",
4134
+ visible: moveSpecifyLocationVisible.value
4135
+ }, {
4136
+ reference: vue.withCtx(() => [
4137
+ vue.createVNode(vue.unref(design.TMagicButton), {
4138
+ link: "",
4139
+ size: "small",
4140
+ type: "primary",
4141
+ icon: vue.unref(iconsVue.Position),
4142
+ disabled: __props.disabled,
4143
+ onClick: _cache[2] || (_cache[2] = ($event) => moveSpecifyLocationVisible.value = true)
4144
+ }, {
4145
+ default: vue.withCtx(() => [..._cache[9] || (_cache[9] = [
4146
+ vue.createTextVNode(
4147
+ "移动至",
4148
+ -1
4149
+ /* CACHED */
4150
+ )
4151
+ ])]),
4152
+ _: 1
4153
+ /* STABLE */
4154
+ }, 8, ["icon", "disabled"])
4155
+ ]),
4156
+ default: vue.withCtx(() => [
4157
+ vue.createElementVNode("div", null, [
4158
+ vue.createElementVNode("div", null, [
4159
+ _cache[10] || (_cache[10] = vue.createTextVNode(
4160
+ " 第",
4161
+ -1
4162
+ /* CACHED */
4163
+ )),
4164
+ vue.createVNode(vue.unref(design.TMagicInputNumber), {
4165
+ style: { "margin": "0 5px" },
4166
+ modelValue: moveSpecifyLocationIndex.value,
4167
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => moveSpecifyLocationIndex.value = $event),
4168
+ size: "small",
4169
+ min: 1,
4170
+ disabled: __props.disabled
4171
+ }, null, 8, ["modelValue", "disabled"]),
4172
+ _cache[11] || (_cache[11] = vue.createTextVNode(
4173
+ "行 ",
4174
+ -1
4175
+ /* CACHED */
4176
+ ))
4177
+ ]),
4178
+ vue.createElementVNode("div", _hoisted_1$b, [
4179
+ vue.createVNode(vue.unref(design.TMagicButton), {
4180
+ size: "small",
4181
+ text: "",
4182
+ onClick: _cache[4] || (_cache[4] = ($event) => moveSpecifyLocationVisible.value = false)
4183
+ }, {
4184
+ default: vue.withCtx(() => [..._cache[12] || (_cache[12] = [
4185
+ vue.createTextVNode(
4186
+ "取消",
4187
+ -1
4188
+ /* CACHED */
4189
+ )
4190
+ ])]),
4191
+ _: 1
4192
+ /* STABLE */
4193
+ }),
4194
+ vue.createVNode(vue.unref(design.TMagicButton), {
4195
+ size: "small",
4196
+ type: "primary",
4197
+ onClick: moveSpecifyLocationHandler
4198
+ }, {
4199
+ default: vue.withCtx(() => [..._cache[13] || (_cache[13] = [
4200
+ vue.createTextVNode(
4201
+ "确认",
4202
+ -1
4203
+ /* CACHED */
4204
+ )
4205
+ ])]),
4206
+ _: 1
4207
+ /* STABLE */
4208
+ })
4209
+ ])
4210
+ ])
4211
+ ]),
4212
+ _: 1
4213
+ /* STABLE */
4214
+ }, 8, ["visible"])) : vue.createCommentVNode("v-if", true),
4215
+ itemExtra.value ? (vue.openBlock(), vue.createElementBlock("span", {
4216
+ key: 3,
4217
+ innerHTML: itemExtra.value,
4218
+ class: "m-form-tip"
4219
+ }, null, 8, _hoisted_2$5)) : vue.createCommentVNode("v-if", true)
4220
+ ])
4158
4221
  ]),
4159
- expand.value ? (vue.openBlock(), vue.createBlock(_sfc_main$A, {
4160
- key: 0,
4161
- config: rowConfig.value,
4162
- model: __props.model,
4163
- lastValues: __props.lastValues,
4164
- "is-compare": __props.isCompare,
4165
- labelWidth: __props.labelWidth,
4166
- prop: `${__props.prop}${__props.prop ? "." : ""}${String(__props.index)}`,
4167
- size: __props.size,
4168
- disabled: __props.disabled,
4169
- onChange: changeHandler,
4170
- onAddDiffCount: _cache[5] || (_cache[5] = ($event) => onAddDiffCount())
4171
- }, null, 8, ["config", "model", "lastValues", "is-compare", "labelWidth", "prop", "size", "disabled"])) : vue.createCommentVNode("v-if", true)
4172
- ]);
4222
+ default: vue.withCtx(() => [
4223
+ expand.value ? (vue.openBlock(), vue.createBlock(_sfc_main$A, {
4224
+ key: 0,
4225
+ config: rowConfig.value,
4226
+ model: __props.model,
4227
+ lastValues: __props.lastValues,
4228
+ "is-compare": __props.isCompare,
4229
+ labelWidth: __props.labelWidth,
4230
+ prop: `${__props.prop}${__props.prop ? "." : ""}${String(__props.index)}`,
4231
+ size: __props.size,
4232
+ disabled: __props.disabled,
4233
+ onChange: changeHandler,
4234
+ onAddDiffCount: _cache[5] || (_cache[5] = ($event) => onAddDiffCount())
4235
+ }, null, 8, ["config", "model", "lastValues", "is-compare", "labelWidth", "prop", "size", "disabled"])) : vue.createCommentVNode("v-if", true)
4236
+ ]),
4237
+ _: 1
4238
+ /* STABLE */
4239
+ }, 8, ["body-style"]);
4173
4240
  };
4174
4241
  }
4175
4242
  });
@@ -4180,6 +4247,8 @@
4180
4247
  key: 1,
4181
4248
  class: "el-table__empty-block"
4182
4249
  };
4250
+ const _hoisted_4$2 = { class: "m-fields-group-list-footer" };
4251
+ const _hoisted_5$1 = { style: { "display": "flex", "justify-content": "flex-end", "flex": "1" } };
4183
4252
  const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
4184
4253
  ...{
4185
4254
  name: "MFormGroupList"
@@ -4279,7 +4348,7 @@
4279
4348
  !__props.model[__props.name] || !__props.model[__props.name].length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$3, [..._cache[1] || (_cache[1] = [
4280
4349
  vue.createElementVNode(
4281
4350
  "span",
4282
- { class: "el-table__empty-text" },
4351
+ { class: "el-table__empty-text t-table__empty" },
4283
4352
  "暂无数据",
4284
4353
  -1
4285
4354
  /* CACHED */
@@ -4306,43 +4375,48 @@
4306
4375
  onChange: changeHandler,
4307
4376
  onAddDiffCount: _cache[0] || (_cache[0] = ($event) => onAddDiffCount())
4308
4377
  }, null, 8, ["model", "lastValues", "is-compare", "config", "prop", "index", "label-width", "size", "disabled", "group-model"]);
4309
- }),
4310
- 128
4311
- /* KEYED_FRAGMENT */
4312
- )),
4313
- addable.value ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicButton), {
4314
- key: 3,
4315
- type: "primary",
4316
- size: __props.config.enableToggleMode ? "small" : "default",
4317
- disabled: __props.disabled,
4318
- onClick: addHandler
4319
- }, {
4320
- default: vue.withCtx(() => [..._cache[2] || (_cache[2] = [
4321
- vue.createTextVNode(
4322
- "新增",
4323
- -1
4324
- /* CACHED */
4325
- )
4326
- ])]),
4327
- _: 1
4328
- /* STABLE */
4329
- }, 8, ["size", "disabled"])) : vue.createCommentVNode("v-if", true),
4330
- __props.config.enableToggleMode ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicButton), {
4331
- key: 4,
4332
- icon: vue.unref(iconsVue.Grid),
4333
- size: "small",
4334
- onClick: toggleMode
4335
- }, {
4336
- default: vue.withCtx(() => [..._cache[3] || (_cache[3] = [
4337
- vue.createTextVNode(
4338
- "切换为表格",
4339
- -1
4340
- /* CACHED */
4341
- )
4342
- ])]),
4343
- _: 1
4344
- /* STABLE */
4345
- }, 8, ["icon"])) : vue.createCommentVNode("v-if", true)
4378
+ }),
4379
+ 128
4380
+ /* KEYED_FRAGMENT */
4381
+ )),
4382
+ vue.createElementVNode("div", _hoisted_4$2, [
4383
+ __props.config.enableToggleMode ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicButton), {
4384
+ key: 0,
4385
+ icon: vue.unref(iconsVue.Grid),
4386
+ size: "small",
4387
+ onClick: toggleMode
4388
+ }, {
4389
+ default: vue.withCtx(() => [..._cache[2] || (_cache[2] = [
4390
+ vue.createTextVNode(
4391
+ "切换为表格",
4392
+ -1
4393
+ /* CACHED */
4394
+ )
4395
+ ])]),
4396
+ _: 1
4397
+ /* STABLE */
4398
+ }, 8, ["icon"])) : vue.createCommentVNode("v-if", true),
4399
+ vue.createElementVNode("div", _hoisted_5$1, [
4400
+ addable.value ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicButton), vue.mergeProps({
4401
+ key: 0,
4402
+ size: __props.config.enableToggleMode ? "small" : "default",
4403
+ icon: vue.unref(iconsVue.Plus)
4404
+ }, __props.config.addButtonConfig?.props || { type: "primary" }, {
4405
+ disabled: __props.disabled,
4406
+ onClick: addHandler
4407
+ }), {
4408
+ default: vue.withCtx(() => [
4409
+ vue.createTextVNode(
4410
+ vue.toDisplayString(__props.config.addButtonConfig?.text || "新增"),
4411
+ 1
4412
+ /* TEXT */
4413
+ )
4414
+ ]),
4415
+ _: 1
4416
+ /* STABLE */
4417
+ }, 16, ["size", "icon", "disabled"])) : vue.createCommentVNode("v-if", true)
4418
+ ])
4419
+ ])
4346
4420
  ]);
4347
4421
  };
4348
4422
  }
@@ -4355,7 +4429,7 @@
4355
4429
  style: { "display": "flex" }
4356
4430
  };
4357
4431
  const _hoisted_4$1 = { style: { "flex": "1" } };
4358
- const _hoisted_5$1 = ["src"];
4432
+ const _hoisted_5 = ["src"];
4359
4433
  const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
4360
4434
  ...{
4361
4435
  name: "MFormPanel"
@@ -4373,7 +4447,7 @@
4373
4447
  disabled: { type: Boolean }
4374
4448
  },
4375
4449
  emits: ["change", "addDiffCount"],
4376
- setup(__props, { emit: __emit }) {
4450
+ setup(__props, { expose: __expose, emit: __emit }) {
4377
4451
  const props = __props;
4378
4452
  const emit = __emit;
4379
4453
  const mForm = vue.inject("mForm");
@@ -4384,6 +4458,12 @@
4384
4458
  emit("change", props.model, eventData);
4385
4459
  };
4386
4460
  const onAddDiffCount = () => emit("addDiffCount");
4461
+ __expose({
4462
+ getExpand: () => expand.value,
4463
+ setExpand: (v) => {
4464
+ expand.value = v;
4465
+ }
4466
+ });
4387
4467
  return (_ctx, _cache) => {
4388
4468
  return items.value && items.value.length ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicCard), {
4389
4469
  key: 0,
@@ -4398,18 +4478,23 @@
4398
4478
  icon: expand.value ? vue.unref(iconsVue.CaretBottom) : vue.unref(iconsVue.CaretRight),
4399
4479
  onClick: _cache[0] || (_cache[0] = ($event) => expand.value = !expand.value)
4400
4480
  }, null, 8, ["icon"]),
4401
- __props.config && __props.config.extra ? (vue.openBlock(), vue.createElementBlock("span", {
4402
- key: 0,
4403
- innerHTML: __props.config.extra,
4404
- class: "m-form-tip"
4405
- }, null, 8, _hoisted_2$3)) : vue.createCommentVNode("v-if", true),
4406
4481
  vue.renderSlot(_ctx.$slots, "header", {}, () => [
4407
- vue.createTextVNode(
4482
+ vue.createElementVNode(
4483
+ "span",
4484
+ {
4485
+ style: { "cursor": "pointer" },
4486
+ onClick: _cache[1] || (_cache[1] = ($event) => expand.value = !expand.value)
4487
+ },
4408
4488
  vue.toDisplayString(filter(__props.config.title)),
4409
4489
  1
4410
4490
  /* TEXT */
4411
4491
  )
4412
- ])
4492
+ ]),
4493
+ __props.config && __props.config.extra ? (vue.openBlock(), vue.createElementBlock("span", {
4494
+ key: 0,
4495
+ innerHTML: __props.config.extra,
4496
+ class: "m-form-tip"
4497
+ }, null, 8, _hoisted_2$3)) : vue.createCommentVNode("v-if", true)
4413
4498
  ])
4414
4499
  ]),
4415
4500
  default: vue.withCtx(() => [
@@ -4432,7 +4517,7 @@
4432
4517
  disabled: __props.disabled,
4433
4518
  "label-width": __props.config.labelWidth || __props.labelWidth,
4434
4519
  onChange: changeHandler,
4435
- onAddDiffCount: _cache[1] || (_cache[1] = ($event) => onAddDiffCount())
4520
+ onAddDiffCount: _cache[2] || (_cache[2] = ($event) => onAddDiffCount())
4436
4521
  }, null, 8, ["config", "model", "lastValues", "is-compare", "prop", "size", "disabled", "label-width"]);
4437
4522
  }),
4438
4523
  128
@@ -4442,7 +4527,7 @@
4442
4527
  vue.createElementVNode("img", {
4443
4528
  class: "m-form-schematic",
4444
4529
  src: __props.config.schematic
4445
- }, null, 8, _hoisted_5$1)
4530
+ }, null, 8, _hoisted_5)
4446
4531
  ])) : (vue.openBlock(true), vue.createElementBlock(
4447
4532
  vue.Fragment,
4448
4533
  { key: 1 },
@@ -4458,7 +4543,7 @@
4458
4543
  disabled: __props.disabled,
4459
4544
  "label-width": __props.config.labelWidth || __props.labelWidth,
4460
4545
  onChange: changeHandler,
4461
- onAddDiffCount: _cache[2] || (_cache[2] = ($event) => onAddDiffCount())
4546
+ onAddDiffCount: _cache[3] || (_cache[3] = ($event) => onAddDiffCount())
4462
4547
  }, null, 8, ["config", "model", "lastValues", "is-compare", "prop", "size", "disabled", "label-width"]);
4463
4548
  }),
4464
4549
  128
@@ -4952,7 +5037,8 @@
4952
5037
  prop: {},
4953
5038
  disabled: { type: Boolean },
4954
5039
  size: {},
4955
- lastValues: {}
5040
+ lastValues: {},
5041
+ isCompare: { type: Boolean }
4956
5042
  },
4957
5043
  emits: ["change"],
4958
5044
  setup(__props, { emit: __emit }) {
@@ -5079,7 +5165,8 @@
5079
5165
  prop: {},
5080
5166
  disabled: { type: Boolean },
5081
5167
  size: {},
5082
- lastValues: {}
5168
+ lastValues: {},
5169
+ isCompare: { type: Boolean }
5083
5170
  },
5084
5171
  emits: ["change"],
5085
5172
  setup(__props, { emit: __emit }) {
@@ -5151,7 +5238,8 @@
5151
5238
  prop: {},
5152
5239
  disabled: { type: Boolean },
5153
5240
  size: {},
5154
- lastValues: {}
5241
+ lastValues: {},
5242
+ isCompare: { type: Boolean }
5155
5243
  },
5156
5244
  emits: ["change"],
5157
5245
  setup(__props, { emit: __emit }) {
@@ -5224,7 +5312,8 @@
5224
5312
  prop: {},
5225
5313
  disabled: { type: Boolean },
5226
5314
  size: {},
5227
- lastValues: {}
5315
+ lastValues: {},
5316
+ isCompare: { type: Boolean }
5228
5317
  },
5229
5318
  emits: ["change"],
5230
5319
  setup(__props, { emit: __emit }) {
@@ -5258,7 +5347,8 @@
5258
5347
  prop: {},
5259
5348
  disabled: { type: Boolean },
5260
5349
  size: {},
5261
- lastValues: {}
5350
+ lastValues: {},
5351
+ isCompare: { type: Boolean }
5262
5352
  },
5263
5353
  emits: ["change"],
5264
5354
  setup(__props, { emit: __emit }) {
@@ -5298,7 +5388,8 @@
5298
5388
  prop: {},
5299
5389
  disabled: { type: Boolean },
5300
5390
  size: {},
5301
- lastValues: {}
5391
+ lastValues: {},
5392
+ isCompare: { type: Boolean }
5302
5393
  },
5303
5394
  emits: ["change"],
5304
5395
  setup(__props, { emit: __emit }) {
@@ -5410,7 +5501,8 @@
5410
5501
  prop: {},
5411
5502
  disabled: { type: Boolean },
5412
5503
  size: {},
5413
- lastValues: {}
5504
+ lastValues: {},
5505
+ isCompare: { type: Boolean }
5414
5506
  },
5415
5507
  emits: ["change"],
5416
5508
  setup(__props, { emit: __emit }) {
@@ -5464,7 +5556,8 @@
5464
5556
  prop: {},
5465
5557
  disabled: { type: Boolean },
5466
5558
  size: {},
5467
- lastValues: {}
5559
+ lastValues: {},
5560
+ isCompare: { type: Boolean }
5468
5561
  },
5469
5562
  setup(__props) {
5470
5563
  const props = __props;
@@ -5499,7 +5592,8 @@
5499
5592
  prop: {},
5500
5593
  disabled: { type: Boolean },
5501
5594
  size: {},
5502
- lastValues: {}
5595
+ lastValues: {},
5596
+ isCompare: { type: Boolean }
5503
5597
  },
5504
5598
  emits: ["change"],
5505
5599
  setup(__props, { emit: __emit }) {
@@ -5600,7 +5694,8 @@
5600
5694
  prop: {},
5601
5695
  disabled: { type: Boolean },
5602
5696
  size: {},
5603
- lastValues: {}
5697
+ lastValues: {},
5698
+ isCompare: { type: Boolean }
5604
5699
  },
5605
5700
  setup(__props) {
5606
5701
  const props = __props;
@@ -5865,7 +5960,12 @@
5865
5960
  zIndex: {},
5866
5961
  size: {},
5867
5962
  confirmText: { default: "确定" },
5868
- preventSubmitDefault: { type: Boolean }
5963
+ preventSubmitDefault: { type: Boolean },
5964
+ closeOnClickModal: { type: Boolean, default: false },
5965
+ closeOnPressEscape: { type: Boolean, default: false },
5966
+ destroyOnClose: { type: Boolean, default: false },
5967
+ showClose: { type: Boolean, default: true },
5968
+ showCancel: { type: Boolean, default: true }
5869
5969
  },
5870
5970
  emits: ["close", "submit", "error", "change"],
5871
5971
  setup(__props, { expose: __expose, emit: __emit }) {
@@ -5945,7 +6045,10 @@
5945
6045
  width: __props.width,
5946
6046
  zIndex: __props.zIndex,
5947
6047
  fullscreen: __props.fullscreen,
5948
- "close-on-click-modal": false,
6048
+ "close-on-click-modal": __props.closeOnClickModal,
6049
+ "close-on-press-escape": __props.closeOnPressEscape,
6050
+ "destroy-on-close": __props.destroyOnClose,
6051
+ "show-close": __props.showClose,
5949
6052
  onClose: closeHandler
5950
6053
  }, {
5951
6054
  footer: vue.withCtx(() => [
@@ -5966,8 +6069,8 @@
5966
6069
  vue.createVNode(vue.unref(design.TMagicCol), { span: 12 }, {
5967
6070
  default: vue.withCtx(() => [
5968
6071
  vue.renderSlot(_ctx.$slots, "footer", {}, () => [
5969
- vue.createVNode(vue.unref(design.TMagicButton), {
5970
- type: "default",
6072
+ __props.showCancel ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicButton), {
6073
+ key: 0,
5971
6074
  onClick: cancel,
5972
6075
  size: "small"
5973
6076
  }, {
@@ -5980,9 +6083,9 @@
5980
6083
  ])]),
5981
6084
  _: 1
5982
6085
  /* STABLE */
5983
- }),
6086
+ })) : vue.createCommentVNode("v-if", true),
5984
6087
  hasStep.value && stepActive.value > 1 ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicButton), {
5985
- key: 0,
6088
+ key: 1,
5986
6089
  type: "info",
5987
6090
  size: "small",
5988
6091
  onClick: preStep
@@ -5998,7 +6101,7 @@
5998
6101
  /* STABLE */
5999
6102
  })) : vue.createCommentVNode("v-if", true),
6000
6103
  hasStep.value && stepCount.value > stepActive.value ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicButton), {
6001
- key: 1,
6104
+ key: 2,
6002
6105
  type: "info",
6003
6106
  size: "small",
6004
6107
  onClick: nextStep
@@ -6013,7 +6116,7 @@
6013
6116
  _: 1
6014
6117
  /* STABLE */
6015
6118
  })) : (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicButton), {
6016
- key: 2,
6119
+ key: 3,
6017
6120
  type: "primary",
6018
6121
  size: "small",
6019
6122
  disabled: __props.disabled,
@@ -6073,7 +6176,7 @@
6073
6176
  ]),
6074
6177
  _: 3
6075
6178
  /* FORWARDED */
6076
- }, 8, ["modelValue", "title", "width", "zIndex", "fullscreen"]);
6179
+ }, 8, ["modelValue", "title", "width", "zIndex", "fullscreen", "close-on-click-modal", "close-on-press-escape", "destroy-on-close", "show-close"]);
6077
6180
  };
6078
6181
  }
6079
6182
  });
@@ -6097,7 +6200,8 @@
6097
6200
  prop: {},
6098
6201
  disabled: { type: Boolean },
6099
6202
  size: {},
6100
- lastValues: {}
6203
+ lastValues: {},
6204
+ isCompare: { type: Boolean }
6101
6205
  },
6102
6206
  emits: ["change"],
6103
6207
  setup(__props, { emit: __emit }) {
@@ -6120,7 +6224,8 @@
6120
6224
  if (typeof props.config.form === "function") {
6121
6225
  return props.config.form(mForm, {
6122
6226
  model: props.model || {},
6123
- values: props.values || {}
6227
+ values: mForm ? vue.readonly(mForm.initValues) : null,
6228
+ formValue: props.values || {}
6124
6229
  });
6125
6230
  }
6126
6231
  return props.config.form;
@@ -6207,16 +6312,27 @@
6207
6312
  prop: {},
6208
6313
  disabled: { type: Boolean },
6209
6314
  size: {},
6210
- lastValues: {}
6315
+ lastValues: {},
6316
+ isCompare: { type: Boolean }
6211
6317
  },
6212
6318
  emits: ["change", "input"],
6213
6319
  setup(__props, { emit: __emit }) {
6214
6320
  const props = __props;
6215
6321
  const emit = __emit;
6322
+ const value = vue.ref();
6323
+ vue.watch(
6324
+ () => props.model[props.name],
6325
+ (v) => {
6326
+ value.value = v;
6327
+ },
6328
+ {
6329
+ immediate: true
6330
+ }
6331
+ );
6216
6332
  useAddField(props.prop);
6217
6333
  const mForm = vue.inject("mForm");
6218
- const changeHandler = (value) => {
6219
- emit("change", value);
6334
+ const changeHandler = (value2) => {
6335
+ emit("change", value2);
6220
6336
  };
6221
6337
  const inputHandler = (v) => {
6222
6338
  emit("input", v);
@@ -6225,7 +6341,8 @@
6225
6341
  return (_ctx, _cache) => {
6226
6342
  return __props.model ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicInputNumber), {
6227
6343
  key: 0,
6228
- "model-value": __props.model[__props.name],
6344
+ modelValue: value.value,
6345
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => value.value = $event),
6229
6346
  clearable: "",
6230
6347
  "controls-position": "right",
6231
6348
  size: __props.size,
@@ -6234,9 +6351,9 @@
6234
6351
  step: __props.config.step,
6235
6352
  placeholder: __props.config.placeholder,
6236
6353
  disabled: __props.disabled,
6237
- "onUpdate:modelValue": changeHandler,
6354
+ onChange: changeHandler,
6238
6355
  onInput: inputHandler
6239
- }, null, 8, ["model-value", "size", "max", "min", "step", "placeholder", "disabled"])) : vue.createCommentVNode("v-if", true);
6356
+ }, null, 8, ["modelValue", "size", "max", "min", "step", "placeholder", "disabled"])) : vue.createCommentVNode("v-if", true);
6240
6357
  };
6241
6358
  }
6242
6359
  });
@@ -6256,12 +6373,26 @@
6256
6373
  prop: {},
6257
6374
  disabled: { type: Boolean },
6258
6375
  size: {},
6259
- lastValues: {}
6376
+ lastValues: {},
6377
+ isCompare: { type: Boolean }
6260
6378
  },
6261
6379
  emits: ["change"],
6262
6380
  setup(__props, { emit: __emit }) {
6263
6381
  const props = __props;
6264
6382
  const emit = __emit;
6383
+ const firstValue = vue.ref();
6384
+ const secondValue = vue.ref();
6385
+ vue.watch(
6386
+ () => props.model[props.name],
6387
+ ([first, second]) => {
6388
+ firstValue.value = first;
6389
+ secondValue.value = second;
6390
+ },
6391
+ {
6392
+ immediate: true,
6393
+ deep: true
6394
+ }
6395
+ );
6265
6396
  useAddField(props.prop);
6266
6397
  if (!Array.isArray(props.model[props.name])) {
6267
6398
  props.model[props.name] = [];
@@ -6275,13 +6406,14 @@
6275
6406
  return (_ctx, _cache) => {
6276
6407
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
6277
6408
  vue.createVNode(vue.unref(design.TMagicInput), {
6278
- "model-value": __props.model[__props.name][0],
6409
+ modelValue: firstValue.value,
6410
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => firstValue.value = $event),
6279
6411
  clearable: __props.config.clearable ?? true,
6280
6412
  size: __props.size,
6281
6413
  disabled: __props.disabled,
6282
- "onUpdate:modelValue": minChangeHandler
6283
- }, null, 8, ["model-value", "clearable", "size", "disabled"]),
6284
- _cache[0] || (_cache[0] = vue.createElementVNode(
6414
+ onChange: minChangeHandler
6415
+ }, null, 8, ["modelValue", "clearable", "size", "disabled"]),
6416
+ _cache[2] || (_cache[2] = vue.createElementVNode(
6285
6417
  "span",
6286
6418
  { class: "split-tag" },
6287
6419
  "-",
@@ -6289,12 +6421,13 @@
6289
6421
  /* CACHED */
6290
6422
  )),
6291
6423
  vue.createVNode(vue.unref(design.TMagicInput), {
6292
- "model-value": __props.model[__props.name][1],
6424
+ modelValue: secondValue.value,
6425
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => secondValue.value = $event),
6293
6426
  clearable: __props.config.clearable ?? true,
6294
6427
  size: __props.size,
6295
6428
  disabled: __props.disabled,
6296
- "onUpdate:modelValue": maxChangeHandler
6297
- }, null, 8, ["model-value", "clearable", "size", "disabled"])
6429
+ onChange: maxChangeHandler
6430
+ }, null, 8, ["modelValue", "clearable", "size", "disabled"])
6298
6431
  ]);
6299
6432
  };
6300
6433
  }
@@ -6314,7 +6447,8 @@
6314
6447
  prop: {},
6315
6448
  disabled: { type: Boolean },
6316
6449
  size: {},
6317
- lastValues: {}
6450
+ lastValues: {},
6451
+ isCompare: { type: Boolean }
6318
6452
  },
6319
6453
  emits: ["change"],
6320
6454
  setup(__props, { emit: __emit }) {
@@ -6412,7 +6546,8 @@
6412
6546
  prop: {},
6413
6547
  disabled: { type: Boolean },
6414
6548
  size: {},
6415
- lastValues: {}
6549
+ lastValues: {},
6550
+ isCompare: { type: Boolean }
6416
6551
  },
6417
6552
  emits: ["change"],
6418
6553
  setup(__props, { expose: __expose, emit: __emit }) {
@@ -6863,7 +6998,8 @@
6863
6998
  prop: {},
6864
6999
  disabled: { type: Boolean },
6865
7000
  size: {},
6866
- lastValues: {}
7001
+ lastValues: {},
7002
+ isCompare: { type: Boolean }
6867
7003
  },
6868
7004
  emits: ["change"],
6869
7005
  setup(__props, { emit: __emit }) {
@@ -6923,7 +7059,8 @@
6923
7059
  prop: {},
6924
7060
  disabled: { type: Boolean },
6925
7061
  size: {},
6926
- lastValues: {}
7062
+ lastValues: {},
7063
+ isCompare: { type: Boolean }
6927
7064
  },
6928
7065
  emits: ["change", "input"],
6929
7066
  setup(__props, { emit: __emit }) {
@@ -6931,6 +7068,16 @@
6931
7068
  const emit = __emit;
6932
7069
  useAddField(props.prop);
6933
7070
  const mForm = vue.inject("mForm");
7071
+ const value = vue.ref("");
7072
+ vue.watch(
7073
+ () => props.model[props.name],
7074
+ (v) => {
7075
+ value.value = v;
7076
+ },
7077
+ {
7078
+ immediate: true
7079
+ }
7080
+ );
6934
7081
  const appendConfig = vue.computed(() => {
6935
7082
  if (typeof props.config.append === "string") {
6936
7083
  return {
@@ -6961,13 +7108,13 @@
6961
7108
  emit("change", props.model[props.name].trim() || "");
6962
7109
  popoverVisible.value = false;
6963
7110
  };
6964
- const checkWhiteSpace = debounce((value) => {
6965
- if (typeof value === "string" && !props.config.trim) {
6966
- popoverVisible.value = value.trim() !== value;
7111
+ const checkWhiteSpace = debounce((value2) => {
7112
+ if (typeof value2 === "string" && !props.config.trim) {
7113
+ popoverVisible.value = value2.trim() !== value2;
6967
7114
  }
6968
7115
  }, 300);
6969
- const changeHandler = (value) => {
6970
- emit("change", value);
7116
+ const changeHandler = (value2) => {
7117
+ emit("change", value2);
6971
7118
  };
6972
7119
  const inputHandler = (v) => {
6973
7120
  checkWhiteSpace(v);
@@ -6977,10 +7124,25 @@
6977
7124
  const buttonClickHandler = () => {
6978
7125
  if (!appendConfig.value) return;
6979
7126
  if (typeof appendConfig.value.handler === "function") {
7127
+ const newChangeRecords = [];
7128
+ const setModel = (key, value2) => {
7129
+ newChangeRecords.push({ propPath: props.prop.replace(`${props.name}`, key), value: value2 });
7130
+ };
7131
+ const setFormValue = (key, value2) => {
7132
+ newChangeRecords.push({ propPath: key, value: value2 });
7133
+ };
6980
7134
  appendConfig.value.handler(mForm, {
6981
7135
  model: props.model,
6982
- values: mForm?.values
7136
+ values: mForm ? vue.readonly(mForm.initValues) : null,
7137
+ formValue: props.values || {},
7138
+ setModel,
7139
+ setFormValue
6983
7140
  });
7141
+ if (newChangeRecords.length > 0) {
7142
+ emit("change", props.model[props.name], {
7143
+ changeRecords: newChangeRecords
7144
+ });
7145
+ }
6984
7146
  }
6985
7147
  };
6986
7148
  const keyUpHandler = ($event) => {
@@ -6991,13 +7153,13 @@
6991
7153
  if (!arrowUp && !arrowDown) {
6992
7154
  return;
6993
7155
  }
6994
- const value = props.model[props.name];
7156
+ const value2 = props.model[props.name];
6995
7157
  let num;
6996
7158
  let unit;
6997
- if (utils.isNumber(value)) {
6998
- num = +value;
7159
+ if (utils.isNumber(value2)) {
7160
+ num = +value2;
6999
7161
  } else {
7000
- value.replace(/^([0-9.]+)([a-z%]+)$/, ($0, $1, $2) => {
7162
+ value2.replace(/^([0-9.]+)([a-z%]+)$/, ($0, $1, $2) => {
7001
7163
  num = +$1;
7002
7164
  unit = $2;
7003
7165
  });
@@ -7059,16 +7221,17 @@
7059
7221
  return (_ctx, _cache) => {
7060
7222
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$2, [
7061
7223
  vue.createVNode(vue.unref(design.TMagicInput), {
7062
- "model-value": __props.model[__props.name],
7224
+ modelValue: value.value,
7225
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => value.value = $event),
7063
7226
  ref_key: "input",
7064
7227
  ref: input,
7065
7228
  clearable: "",
7066
7229
  size: __props.size,
7067
7230
  placeholder: __props.config.placeholder,
7068
7231
  disabled: __props.disabled,
7069
- "onUpdate:modelValue": changeHandler,
7232
+ onChange: changeHandler,
7070
7233
  onInput: inputHandler,
7071
- onKeyup: _cache[0] || (_cache[0] = ($event) => keyUpHandler($event))
7234
+ onKeyup: _cache[1] || (_cache[1] = ($event) => keyUpHandler($event))
7072
7235
  }, vue.createSlots({
7073
7236
  _: 2
7074
7237
  /* DYNAMIC */
@@ -7114,7 +7277,7 @@
7114
7277
  ]),
7115
7278
  key: "1"
7116
7279
  } : void 0
7117
- ]), 1032, ["model-value", "size", "placeholder", "disabled"]),
7280
+ ]), 1032, ["modelValue", "size", "placeholder", "disabled"]),
7118
7281
  (vue.openBlock(), vue.createBlock(vue.Teleport, { to: "body" }, [
7119
7282
  popoverVisible.value ? (vue.openBlock(), vue.createElementBlock(
7120
7283
  "div",
@@ -7125,7 +7288,7 @@
7125
7288
  ref: popoverEl
7126
7289
  },
7127
7290
  [
7128
- _cache[4] || (_cache[4] = vue.createElementVNode(
7291
+ _cache[5] || (_cache[5] = vue.createElementVNode(
7129
7292
  "div",
7130
7293
  { class: "m-form-validate__warning" },
7131
7294
  "输入内容前后有空格,是否移除空格?",
@@ -7136,9 +7299,9 @@
7136
7299
  vue.createVNode(vue.unref(design.TMagicButton), {
7137
7300
  link: "",
7138
7301
  size: "small",
7139
- onClick: _cache[1] || (_cache[1] = ($event) => popoverVisible.value = false)
7302
+ onClick: _cache[2] || (_cache[2] = ($event) => popoverVisible.value = false)
7140
7303
  }, {
7141
- default: vue.withCtx(() => [..._cache[2] || (_cache[2] = [
7304
+ default: vue.withCtx(() => [..._cache[3] || (_cache[3] = [
7142
7305
  vue.createTextVNode(
7143
7306
  "保持原样",
7144
7307
  -1
@@ -7153,7 +7316,7 @@
7153
7316
  size: "small",
7154
7317
  onClick: confirmTrimHandler
7155
7318
  }, {
7156
- default: vue.withCtx(() => [..._cache[3] || (_cache[3] = [
7319
+ default: vue.withCtx(() => [..._cache[4] || (_cache[4] = [
7157
7320
  vue.createTextVNode(
7158
7321
  "移除空格",
7159
7322
  -1
@@ -7164,7 +7327,7 @@
7164
7327
  /* STABLE */
7165
7328
  })
7166
7329
  ]),
7167
- _cache[5] || (_cache[5] = vue.createElementVNode(
7330
+ _cache[6] || (_cache[6] = vue.createElementVNode(
7168
7331
  "span",
7169
7332
  {
7170
7333
  class: "tmagic-form-text-popper-arrow",
@@ -7198,16 +7361,27 @@
7198
7361
  prop: {},
7199
7362
  disabled: { type: Boolean },
7200
7363
  size: {},
7201
- lastValues: {}
7364
+ lastValues: {},
7365
+ isCompare: { type: Boolean }
7202
7366
  },
7203
7367
  emits: ["change", "input"],
7204
7368
  setup(__props, { emit: __emit }) {
7205
7369
  const props = __props;
7206
7370
  const emit = __emit;
7371
+ const value = vue.ref("");
7372
+ vue.watch(
7373
+ () => props.model[props.name],
7374
+ (v) => {
7375
+ value.value = v;
7376
+ },
7377
+ {
7378
+ immediate: true
7379
+ }
7380
+ );
7207
7381
  useAddField(props.prop);
7208
7382
  const mForm = vue.inject("mForm");
7209
- const changeHandler = (value) => {
7210
- emit("change", value);
7383
+ const changeHandler = (value2) => {
7384
+ emit("change", value2);
7211
7385
  };
7212
7386
  const inputHandler = (v) => {
7213
7387
  emit("input", v);
@@ -7215,16 +7389,17 @@
7215
7389
  };
7216
7390
  return (_ctx, _cache) => {
7217
7391
  return vue.openBlock(), vue.createBlock(vue.unref(design.TMagicInput), {
7218
- "model-value": __props.model[__props.name],
7392
+ modelValue: value.value,
7393
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => value.value = $event),
7219
7394
  type: "textarea",
7220
7395
  size: __props.size,
7221
7396
  clearable: "",
7222
7397
  placeholder: __props.config.placeholder,
7223
7398
  disabled: __props.disabled,
7224
7399
  rows: __props.config.rows,
7225
- "onUpdate:modelValue": changeHandler,
7400
+ onChange: changeHandler,
7226
7401
  onInput: inputHandler
7227
- }, null, 8, ["model-value", "size", "placeholder", "disabled", "rows"]);
7402
+ }, null, 8, ["modelValue", "size", "placeholder", "disabled", "rows"]);
7228
7403
  };
7229
7404
  }
7230
7405
  });
@@ -7243,7 +7418,8 @@
7243
7418
  prop: {},
7244
7419
  disabled: { type: Boolean },
7245
7420
  size: {},
7246
- lastValues: {}
7421
+ lastValues: {},
7422
+ isCompare: { type: Boolean }
7247
7423
  },
7248
7424
  emits: ["change"],
7249
7425
  setup(__props, { emit: __emit }) {
@@ -7281,7 +7457,8 @@
7281
7457
  prop: {},
7282
7458
  disabled: { type: Boolean },
7283
7459
  size: {},
7284
- lastValues: {}
7460
+ lastValues: {},
7461
+ isCompare: { type: Boolean }
7285
7462
  },
7286
7463
  emits: ["change"],
7287
7464
  setup(__props, { emit: __emit }) {
@@ -7402,6 +7579,7 @@
7402
7579
  if (typeof props.config.defaultAdd === "function") {
7403
7580
  inputs = await props.config.defaultAdd(mForm, {
7404
7581
  model: props.model[modelName],
7582
+ prop: props.prop,
7405
7583
  formValue: mForm?.values
7406
7584
  });
7407
7585
  } else if (props.config.defaultAdd) {
@@ -7432,16 +7610,10 @@
7432
7610
 
7433
7611
  const useFullscreen = () => {
7434
7612
  const isFullscreen = vue.ref(false);
7435
- const mTableEl = vue.useTemplateRef("mTable");
7436
- const { nextZIndex } = design.useZIndex();
7437
7613
  const toggleFullscreen = () => {
7438
- if (!mTableEl.value) return;
7439
7614
  if (isFullscreen.value) {
7440
- mTableEl.value.classList.remove("fixed");
7441
7615
  isFullscreen.value = false;
7442
7616
  } else {
7443
- mTableEl.value.classList.add("fixed");
7444
- mTableEl.value.style.zIndex = `${nextZIndex()}`;
7445
7617
  isFullscreen.value = true;
7446
7618
  }
7447
7619
  };
@@ -7547,7 +7719,7 @@
7547
7719
  const rowDrop = () => {
7548
7720
  sortable?.destroy();
7549
7721
  const tableEl = tMagicTableRef.value?.getEl();
7550
- const tBodyEl = tableEl?.querySelector(".el-table__body > tbody");
7722
+ const tBodyEl = tableEl?.querySelector(".el-table__body > tbody") || tableEl?.querySelector(".t-table__body");
7551
7723
  if (!tBodyEl) {
7552
7724
  return;
7553
7725
  }
@@ -7794,6 +7966,17 @@
7794
7966
  }
7795
7967
  return fuc;
7796
7968
  };
7969
+ const titleTip = (fuc) => {
7970
+ if (typeof fuc === "function") {
7971
+ return fuc(mForm, {
7972
+ values: mForm?.initValues,
7973
+ model: props.model,
7974
+ formValue: mForm ? mForm.values : props.model,
7975
+ prop: props.prop
7976
+ });
7977
+ }
7978
+ return fuc;
7979
+ };
7797
7980
  const selection = vue.computed(() => {
7798
7981
  if (typeof props.config.selection === "function") {
7799
7982
  return props.config.selection(mForm, { model: props.model[modelName.value] });
@@ -7830,10 +8013,14 @@
7830
8013
  })
7831
8014
  });
7832
8015
  }
7833
- columns2.push({
8016
+ let actionFixed = props.config.fixed === false ? void 0 : "left";
8017
+ if (typeof props.config.fixed === "string" && ["left", "right"].includes(props.config.fixed)) {
8018
+ actionFixed = props.config.fixed;
8019
+ }
8020
+ const actionClumn = {
7834
8021
  props: {
7835
8022
  label: "操作",
7836
- fixed: props.config.fixed === false ? void 0 : "left",
8023
+ fixed: actionFixed,
7837
8024
  width: props.config.operateColWidth || 112,
7838
8025
  align: "center"
7839
8026
  },
@@ -7852,7 +8039,10 @@
7852
8039
  emit("change", v);
7853
8040
  }
7854
8041
  })
7855
- });
8042
+ };
8043
+ if (actionFixed !== "right") {
8044
+ columns2.push(actionClumn);
8045
+ }
7856
8046
  if (props.sort && props.model[modelName.value] && props.model[modelName.value].length > 1) {
7857
8047
  columns2.push({
7858
8048
  props: {
@@ -7895,6 +8085,7 @@
7895
8085
  }
7896
8086
  for (const column of props.config.items) {
7897
8087
  if (column.type !== "hidden" && display$1(column.display)) {
8088
+ const titleTipValue = titleTip(column.titleTip);
7898
8089
  columns2.push({
7899
8090
  props: {
7900
8091
  prop: column.name,
@@ -7916,10 +8107,33 @@
7916
8107
  size: props.size,
7917
8108
  onChange: changeHandler,
7918
8109
  onAddDiffCount
7919
- })
8110
+ }),
8111
+ title: titleTipValue ? () => vue.h(
8112
+ design.TMagicTooltip,
8113
+ { placement: "top" },
8114
+ {
8115
+ default: () => vue.h(
8116
+ "span",
8117
+ {
8118
+ style: {
8119
+ display: "inline-flex",
8120
+ alignItems: "center",
8121
+ gap: "5px"
8122
+ }
8123
+ },
8124
+ [vue.h("span", column.label), vue.h(design.TMagicIcon, {}, { default: () => vue.h(iconsVue.WarningFilled) })]
8125
+ ),
8126
+ content: () => vue.h("div", {
8127
+ innerHTML: titleTipValue
8128
+ })
8129
+ }
8130
+ ) : void 0
7920
8131
  });
7921
8132
  }
7922
8133
  }
8134
+ if (actionFixed === "right") {
8135
+ columns2.push(actionClumn);
8136
+ }
7923
8137
  return columns2;
7924
8138
  });
7925
8139
  return {
@@ -7927,11 +8141,10 @@
7927
8141
  };
7928
8142
  };
7929
8143
 
7930
- const _hoisted_1$1 = { class: "m-fields-table-wrap" };
7931
- const _hoisted_2 = ["innerHTML"];
7932
- const _hoisted_3 = { style: { "display": "flex", "justify-content": "space-between", "margin": "10px 0" } };
7933
- const _hoisted_4 = { style: { "display": "flex" } };
7934
- const _hoisted_5 = {
8144
+ const _hoisted_1$1 = ["innerHTML"];
8145
+ const _hoisted_2 = { style: { "display": "flex", "justify-content": "space-between", "margin": "10px 0" } };
8146
+ const _hoisted_3 = { style: { "display": "flex" } };
8147
+ const _hoisted_4 = {
7935
8148
  key: 1,
7936
8149
  class: "bottom",
7937
8150
  style: { "text-align": "right" }
@@ -7967,6 +8180,7 @@
7967
8180
  props,
7968
8181
  modelName
7969
8182
  );
8183
+ const { nextZIndex } = design.useZIndex();
7970
8184
  const { addable, newHandler } = useAdd(props, emit);
7971
8185
  const { columns } = useTableColumns(props, emit, currentPage, pageSize, modelName);
7972
8186
  useSortable(props, emit, tMagicTableRef, modelName);
@@ -8004,170 +8218,178 @@
8004
8218
  toggleRowSelection
8005
8219
  });
8006
8220
  return (_ctx, _cache) => {
8007
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [
8008
- (vue.openBlock(), vue.createBlock(vue.Teleport, {
8009
- to: "body",
8010
- disabled: !vue.unref(isFullscreen)
8011
- }, [
8012
- vue.createElementVNode(
8013
- "div",
8014
- {
8015
- ref: "mTable",
8016
- class: vue.normalizeClass(["m-fields-table", { "m-fields-table-item-extra": __props.config.itemExtra }])
8017
- },
8018
- [
8019
- __props.config.extra ? (vue.openBlock(), vue.createElementBlock("span", {
8020
- key: 0,
8021
- style: { "color": "rgba(0, 0, 0, 0.45)" },
8022
- innerHTML: __props.config.extra
8023
- }, null, 8, _hoisted_2)) : vue.createCommentVNode("v-if", true),
8024
- vue.createVNode(vue.unref(design.TMagicTooltip), {
8025
- content: "拖拽可排序",
8026
- placement: "left-start",
8027
- disabled: __props.config.dropSort !== true
8028
- }, {
8029
- default: vue.withCtx(() => [
8030
- __props.model[modelName.value] ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicTable), {
8031
- ref: "tMagicTable",
8032
- style: { "width": "100%" },
8033
- "show-header": "",
8034
- "row-key": __props.config.rowKey || "id",
8035
- columns: vue.unref(columns),
8036
- data: data.value,
8037
- border: __props.config.border,
8038
- "max-height": __props.config.maxHeight,
8039
- "default-expand-all": true,
8040
- key: updateKey.value,
8041
- onSelect: vue.unref(selectHandle),
8042
- onSortChange: sortChangeHandler
8043
- }, null, 8, ["row-key", "columns", "data", "border", "max-height", "onSelect"])) : vue.createCommentVNode("v-if", true)
8044
- ]),
8045
- _: 1
8046
- /* STABLE */
8047
- }, 8, ["disabled"]),
8048
- vue.renderSlot(_ctx.$slots, "default"),
8049
- vue.createElementVNode("div", _hoisted_3, [
8050
- vue.createElementVNode("div", _hoisted_4, [
8051
- __props.enableToggleMode && __props.config.enableToggleMode !== false && !vue.unref(isFullscreen) ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicButton), {
8221
+ return vue.openBlock(), vue.createBlock(vue.Teleport, {
8222
+ to: "body",
8223
+ disabled: !vue.unref(isFullscreen)
8224
+ }, [
8225
+ vue.createElementVNode(
8226
+ "div",
8227
+ vue.mergeProps(_ctx.$attrs, {
8228
+ class: ["m-fields-table-wrap", { fixed: vue.unref(isFullscreen) }],
8229
+ style: vue.unref(isFullscreen) ? `z-index: ${vue.unref(nextZIndex)()}` : ""
8230
+ }),
8231
+ [
8232
+ vue.createElementVNode(
8233
+ "div",
8234
+ {
8235
+ class: vue.normalizeClass(["m-fields-table", { "m-fields-table-item-extra": __props.config.itemExtra }])
8236
+ },
8237
+ [
8238
+ __props.config.extra ? (vue.openBlock(), vue.createElementBlock("span", {
8239
+ key: 0,
8240
+ style: { "color": "rgba(0, 0, 0, 0.45)" },
8241
+ innerHTML: __props.config.extra
8242
+ }, null, 8, _hoisted_1$1)) : vue.createCommentVNode("v-if", true),
8243
+ vue.createVNode(vue.unref(design.TMagicTooltip), {
8244
+ content: "拖拽可排序",
8245
+ placement: "left-start",
8246
+ disabled: __props.config.dropSort !== true
8247
+ }, {
8248
+ default: vue.withCtx(() => [
8249
+ __props.model[modelName.value] ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicTable), {
8250
+ ref: "tMagicTable",
8251
+ style: { "width": "100%" },
8252
+ "show-header": "",
8253
+ "row-key": __props.config.rowKey || "id",
8254
+ columns: vue.unref(columns),
8255
+ data: data.value,
8256
+ border: __props.config.border,
8257
+ "max-height": __props.config.maxHeight,
8258
+ "default-expand-all": true,
8259
+ key: updateKey.value,
8260
+ onSelect: vue.unref(selectHandle),
8261
+ onSortChange: sortChangeHandler
8262
+ }, null, 8, ["row-key", "columns", "data", "border", "max-height", "onSelect"])) : vue.createCommentVNode("v-if", true)
8263
+ ]),
8264
+ _: 1
8265
+ /* STABLE */
8266
+ }, 8, ["disabled"]),
8267
+ vue.renderSlot(_ctx.$slots, "default"),
8268
+ vue.createElementVNode("div", _hoisted_2, [
8269
+ vue.createElementVNode("div", _hoisted_3, [
8270
+ __props.enableToggleMode && __props.config.enableToggleMode !== false && !vue.unref(isFullscreen) ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicButton), {
8271
+ key: 0,
8272
+ icon: vue.unref(iconsVue.Grid),
8273
+ size: "small",
8274
+ onClick: toggleMode
8275
+ }, {
8276
+ default: vue.withCtx(() => [..._cache[1] || (_cache[1] = [
8277
+ vue.createTextVNode(
8278
+ "展开配置",
8279
+ -1
8280
+ /* CACHED */
8281
+ )
8282
+ ])]),
8283
+ _: 1
8284
+ /* STABLE */
8285
+ }, 8, ["icon"])) : vue.createCommentVNode("v-if", true),
8286
+ __props.config.enableFullscreen !== false ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicButton), {
8287
+ key: 1,
8288
+ icon: vue.unref(iconsVue.FullScreen),
8289
+ size: "small",
8290
+ onClick: vue.unref(toggleFullscreen)
8291
+ }, {
8292
+ default: vue.withCtx(() => [
8293
+ vue.createTextVNode(
8294
+ vue.toDisplayString(vue.unref(isFullscreen) ? "退出全屏" : "全屏编辑"),
8295
+ 1
8296
+ /* TEXT */
8297
+ )
8298
+ ]),
8299
+ _: 1
8300
+ /* STABLE */
8301
+ }, 8, ["icon", "onClick"])) : vue.createCommentVNode("v-if", true),
8302
+ vue.unref(importable) ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicUpload), {
8303
+ key: 2,
8304
+ style: { "display": "inline-block" },
8305
+ ref: "excelBtn",
8306
+ action: "/noop",
8307
+ disabled: __props.disabled,
8308
+ "on-change": vue.unref(excelHandler),
8309
+ "auto-upload": false
8310
+ }, {
8311
+ default: vue.withCtx(() => [
8312
+ vue.createVNode(vue.unref(design.TMagicButton), {
8313
+ size: "small",
8314
+ type: "success",
8315
+ disabled: __props.disabled,
8316
+ plain: ""
8317
+ }, {
8318
+ default: vue.withCtx(() => [..._cache[2] || (_cache[2] = [
8319
+ vue.createTextVNode(
8320
+ "导入EXCEL",
8321
+ -1
8322
+ /* CACHED */
8323
+ )
8324
+ ])]),
8325
+ _: 1
8326
+ /* STABLE */
8327
+ }, 8, ["disabled"])
8328
+ ]),
8329
+ _: 1
8330
+ /* STABLE */
8331
+ }, 8, ["disabled", "on-change"])) : vue.createCommentVNode("v-if", true),
8332
+ vue.unref(importable) ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicButton), {
8333
+ key: 3,
8334
+ size: "small",
8335
+ type: "warning",
8336
+ disabled: __props.disabled,
8337
+ plain: "",
8338
+ onClick: vue.unref(clearHandler)
8339
+ }, {
8340
+ default: vue.withCtx(() => [..._cache[3] || (_cache[3] = [
8341
+ vue.createTextVNode(
8342
+ "清空",
8343
+ -1
8344
+ /* CACHED */
8345
+ )
8346
+ ])]),
8347
+ _: 1
8348
+ /* STABLE */
8349
+ }, 8, ["disabled", "onClick"])) : vue.createCommentVNode("v-if", true)
8350
+ ]),
8351
+ vue.unref(addable) ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicButton), vue.mergeProps({
8052
8352
  key: 0,
8053
- icon: vue.unref(iconsVue.Grid),
8054
- size: "small",
8055
- type: "defalut",
8056
- onClick: toggleMode
8057
- }, {
8058
- default: vue.withCtx(() => [..._cache[1] || (_cache[1] = [
8059
- vue.createTextVNode(
8060
- "展开配置",
8061
- -1
8062
- /* CACHED */
8063
- )
8064
- ])]),
8065
- _: 1
8066
- /* STABLE */
8067
- }, 8, ["icon"])) : vue.createCommentVNode("v-if", true),
8068
- __props.config.enableFullscreen !== false ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicButton), {
8069
- key: 1,
8070
- icon: vue.unref(iconsVue.FullScreen),
8353
+ class: "m-form-table-add-button",
8071
8354
  size: "small",
8072
- type: "defalut",
8073
- onClick: vue.unref(toggleFullscreen)
8074
- }, {
8355
+ plain: "",
8356
+ icon: vue.unref(iconsVue.Plus)
8357
+ }, __props.config.addButtonConfig?.props || { type: "primary" }, {
8358
+ disabled: __props.disabled,
8359
+ onClick: _cache[0] || (_cache[0] = ($event) => vue.unref(newHandler)())
8360
+ }), {
8075
8361
  default: vue.withCtx(() => [
8076
8362
  vue.createTextVNode(
8077
- vue.toDisplayString(vue.unref(isFullscreen) ? "退出全屏" : "全屏编辑"),
8363
+ vue.toDisplayString(__props.config.addButtonConfig?.text || "新增一行"),
8078
8364
  1
8079
8365
  /* TEXT */
8080
8366
  )
8081
8367
  ]),
8082
8368
  _: 1
8083
8369
  /* STABLE */
8084
- }, 8, ["icon", "onClick"])) : vue.createCommentVNode("v-if", true),
8085
- vue.unref(importable) ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicUpload), {
8086
- key: 2,
8087
- style: { "display": "inline-block" },
8088
- ref: "excelBtn",
8089
- action: "/noop",
8090
- disabled: __props.disabled,
8091
- "on-change": vue.unref(excelHandler),
8092
- "auto-upload": false
8093
- }, {
8094
- default: vue.withCtx(() => [
8095
- vue.createVNode(vue.unref(design.TMagicButton), {
8096
- size: "small",
8097
- type: "success",
8098
- disabled: __props.disabled,
8099
- plain: ""
8100
- }, {
8101
- default: vue.withCtx(() => [..._cache[2] || (_cache[2] = [
8102
- vue.createTextVNode(
8103
- "导入EXCEL",
8104
- -1
8105
- /* CACHED */
8106
- )
8107
- ])]),
8108
- _: 1
8109
- /* STABLE */
8110
- }, 8, ["disabled"])
8111
- ]),
8112
- _: 1
8113
- /* STABLE */
8114
- }, 8, ["disabled", "on-change"])) : vue.createCommentVNode("v-if", true),
8115
- vue.unref(importable) ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicButton), {
8116
- key: 3,
8117
- size: "small",
8118
- type: "warning",
8119
- disabled: __props.disabled,
8120
- plain: "",
8121
- onClick: vue.unref(clearHandler)
8122
- }, {
8123
- default: vue.withCtx(() => [..._cache[3] || (_cache[3] = [
8124
- vue.createTextVNode(
8125
- "清空",
8126
- -1
8127
- /* CACHED */
8128
- )
8129
- ])]),
8130
- _: 1
8131
- /* STABLE */
8132
- }, 8, ["disabled", "onClick"])) : vue.createCommentVNode("v-if", true)
8370
+ }, 16, ["icon", "disabled"])) : vue.createCommentVNode("v-if", true)
8133
8371
  ]),
8134
- vue.unref(addable) ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicButton), {
8135
- key: 0,
8136
- size: "small",
8137
- type: "primary",
8138
- disabled: __props.disabled,
8139
- plain: "",
8140
- onClick: _cache[0] || (_cache[0] = ($event) => vue.unref(newHandler)())
8141
- }, {
8142
- default: vue.withCtx(() => [..._cache[4] || (_cache[4] = [
8143
- vue.createTextVNode(
8144
- "新增一行",
8145
- -1
8146
- /* CACHED */
8147
- )
8148
- ])]),
8149
- _: 1
8150
- /* STABLE */
8151
- }, 8, ["disabled"])) : vue.createCommentVNode("v-if", true)
8152
- ]),
8153
- __props.config.pagination ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5, [
8154
- vue.createVNode(vue.unref(design.TMagicPagination), {
8155
- layout: "total, sizes, prev, pager, next, jumper",
8156
- "hide-on-single-page": __props.model[modelName.value].length < vue.unref(pageSize),
8157
- "current-page": vue.unref(currentPage) + 1,
8158
- "page-sizes": [vue.unref(pageSize), 60, 120, 300],
8159
- "page-size": vue.unref(pageSize),
8160
- total: __props.model[modelName.value].length,
8161
- onSizeChange: vue.unref(handleSizeChange),
8162
- onCurrentChange: vue.unref(handleCurrentChange)
8163
- }, null, 8, ["hide-on-single-page", "current-page", "page-sizes", "page-size", "total", "onSizeChange", "onCurrentChange"])
8164
- ])) : vue.createCommentVNode("v-if", true)
8165
- ],
8166
- 2
8167
- /* CLASS */
8168
- )
8169
- ], 8, ["disabled"]))
8170
- ]);
8372
+ __props.config.pagination ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [
8373
+ vue.createVNode(vue.unref(design.TMagicPagination), {
8374
+ layout: "total, sizes, prev, pager, next, jumper",
8375
+ "hide-on-single-page": __props.model[modelName.value].length < vue.unref(pageSize),
8376
+ "current-page": vue.unref(currentPage) + 1,
8377
+ "page-sizes": [vue.unref(pageSize), 60, 120, 300],
8378
+ "page-size": vue.unref(pageSize),
8379
+ total: __props.model[modelName.value].length,
8380
+ onSizeChange: vue.unref(handleSizeChange),
8381
+ onCurrentChange: vue.unref(handleCurrentChange)
8382
+ }, null, 8, ["hide-on-single-page", "current-page", "page-sizes", "page-size", "total", "onSizeChange", "onCurrentChange"])
8383
+ ])) : vue.createCommentVNode("v-if", true)
8384
+ ],
8385
+ 2
8386
+ /* CLASS */
8387
+ )
8388
+ ],
8389
+ 16
8390
+ /* FULL_PROPS */
8391
+ )
8392
+ ], 8, ["disabled"]);
8171
8393
  };
8172
8394
  }
8173
8395
  });
@@ -8288,10 +8510,7 @@
8288
8510
  vue.createVNode(vue.unref(design.TMagicCol), { span: 12 }, {
8289
8511
  default: vue.withCtx(() => [
8290
8512
  vue.renderSlot(_ctx.$slots, "footer", {}, () => [
8291
- vue.createVNode(vue.unref(design.TMagicButton), {
8292
- type: "default",
8293
- onClick: handleClose
8294
- }, {
8513
+ vue.createVNode(vue.unref(design.TMagicButton), { onClick: handleClose }, {
8295
8514
  default: vue.withCtx(() => [..._cache[1] || (_cache[1] = [
8296
8515
  vue.createTextVNode(
8297
8516
  "关闭",