@tmagic/form 1.3.5 → 1.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/LICENSE +5432 -0
  2. package/dist/style.css +2 -10
  3. package/dist/tmagic-form.js +280 -270
  4. package/dist/tmagic-form.js.map +1 -1
  5. package/dist/tmagic-form.umd.cjs +279 -269
  6. package/dist/tmagic-form.umd.cjs.map +1 -1
  7. package/package.json +15 -15
  8. package/src/containers/Container.vue +2 -0
  9. package/src/containers/Table.vue +168 -166
  10. package/src/fields/Cascader.vue +6 -2
  11. package/src/fields/Select.vue +5 -3
  12. package/src/theme/table.scss +4 -11
  13. package/types/Form.vue.d.ts +5 -1
  14. package/types/FormBox.vue.d.ts +14 -6
  15. package/types/FormDialog.vue.d.ts +15 -6
  16. package/types/FormDrawer.vue.d.ts +18 -6
  17. package/types/containers/Col.vue.d.ts +4 -1
  18. package/types/containers/Container.vue.d.ts +4 -1
  19. package/types/containers/Fieldset.vue.d.ts +4 -1
  20. package/types/containers/GroupList.vue.d.ts +4 -1
  21. package/types/containers/GroupListItem.vue.d.ts +6 -1
  22. package/types/containers/Panel.vue.d.ts +4 -1
  23. package/types/containers/Row.vue.d.ts +4 -1
  24. package/types/containers/Step.vue.d.ts +4 -1
  25. package/types/containers/Table.vue.d.ts +8 -4
  26. package/types/containers/Tabs.vue.d.ts +4 -1
  27. package/types/fields/Cascader.vue.d.ts +3 -1
  28. package/types/fields/Checkbox.vue.d.ts +3 -1
  29. package/types/fields/CheckboxGroup.vue.d.ts +3 -1
  30. package/types/fields/ColorPicker.vue.d.ts +5 -1
  31. package/types/fields/Date.vue.d.ts +5 -1
  32. package/types/fields/DateTime.vue.d.ts +5 -1
  33. package/types/fields/Daterange.vue.d.ts +3 -1
  34. package/types/fields/DynamicField.vue.d.ts +3 -1
  35. package/types/fields/Link.vue.d.ts +3 -1
  36. package/types/fields/Number.vue.d.ts +7 -1
  37. package/types/fields/NumberRange.vue.d.ts +5 -1
  38. package/types/fields/RadioGroup.vue.d.ts +3 -1
  39. package/types/fields/Select.vue.d.ts +3 -1
  40. package/types/fields/Switch.vue.d.ts +5 -1
  41. package/types/fields/Text.vue.d.ts +7 -1
  42. package/types/fields/Textarea.vue.d.ts +7 -1
  43. package/types/fields/Time.vue.d.ts +5 -1
  44. package/types/fields/Timerange.vue.d.ts +3 -1
@@ -1,4 +1,4 @@
1
- import { toRaw, defineComponent, inject, ref, computed, resolveComponent, watchEffect, watch, openBlock, createElementBlock, normalizeStyle, normalizeClass, createBlock, resolveDynamicComponent, Fragment, createVNode, unref, withCtx, createElementVNode, createCommentVNode, renderList, createTextVNode, toDisplayString, withDirectives, vShow, renderSlot, onMounted, toRefs, mergeProps, getCurrentInstance, reactive, onBeforeUnmount, vModelText, provide, onBeforeMount, resolveDirective, createSlots, withModifiers } from 'vue';
1
+ import { toRaw, defineComponent, inject, ref, computed, resolveComponent, watchEffect, watch, openBlock, createElementBlock, normalizeStyle, normalizeClass, createBlock, resolveDynamicComponent, Fragment, createVNode, unref, withCtx, createElementVNode, createCommentVNode, renderList, createTextVNode, toDisplayString, withDirectives, vShow, renderSlot, onMounted, Teleport, toRefs, mergeProps, getCurrentInstance, reactive, onBeforeUnmount, vModelText, provide, onBeforeMount, nextTick, resolveDirective, createSlots, withModifiers } from 'vue';
2
2
  import { WarningFilled, CaretBottom, CaretRight, Delete, CaretTop, Grid, ArrowUp, ArrowDown, FullScreen } from '@element-plus/icons-vue';
3
3
  import { cloneDeep, isEqual, isEmpty } from 'lodash-es';
4
4
  import { TMagicFormItem, TMagicTooltip, TMagicIcon, TMagicButton, TMagicCheckbox, TMagicCard, TMagicCol, TMagicRow, TMagicSteps, TMagicStep, TMagicTable, TMagicTableColumn, TMagicUpload, TMagicPagination, tMagicMessage, getConfig as getConfig$1, TMagicBadge, TMagicCascader, TMagicCheckboxGroup, TMagicColorPicker, TMagicDatePicker, TMagicForm, TMagicInput, TMagicDialog, TMagicInputNumber, TMagicRadioGroup, TMagicRadio, TMagicOptionGroup, TMagicOption, TMagicSelect, TMagicSwitch, TMagicTimePicker, TMagicDrawer } from '@tmagic/design';
@@ -166,7 +166,7 @@ const initValue = async (mForm, { initValues, config }) => {
166
166
  return valuesTmp || {};
167
167
  };
168
168
 
169
- const _hoisted_1$e = ["innerHTML"];
169
+ const _hoisted_1$e = ["id", "data-magic-id"];
170
170
  const _hoisted_2$8 = ["innerHTML"];
171
171
  const _hoisted_3$4 = ["innerHTML"];
172
172
  const _hoisted_4$4 = ["innerHTML"];
@@ -178,7 +178,8 @@ const _hoisted_9 = ["innerHTML"];
178
178
  const _hoisted_10 = ["innerHTML"];
179
179
  const _hoisted_11 = ["innerHTML"];
180
180
  const _hoisted_12 = ["innerHTML"];
181
- const _hoisted_13 = {
181
+ const _hoisted_13 = ["innerHTML"];
182
+ const _hoisted_14 = {
182
183
  key: 5,
183
184
  style: { "text-align": "center" }
184
185
  };
@@ -331,6 +332,8 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
331
332
  const _component_Container = resolveComponent("Container", true);
332
333
  return _ctx.config ? (openBlock(), createElementBlock("div", {
333
334
  key: 0,
335
+ id: _ctx.config.id,
336
+ "data-magic-id": _ctx.config.id,
334
337
  style: normalizeStyle(_ctx.config.tip ? "display: flex;align-items: baseline;" : ""),
335
338
  class: normalizeClass(`m-form-container m-container-${type.value || ""} ${_ctx.config.className || ""}`)
336
339
  }, [
@@ -367,12 +370,12 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
367
370
  label: withCtx(() => [
368
371
  createElementVNode("span", {
369
372
  innerHTML: type.value === "checkbox" ? "" : text.value
370
- }, null, 8, _hoisted_1$e)
373
+ }, null, 8, _hoisted_2$8)
371
374
  ]),
372
375
  default: withCtx(() => [
373
376
  tooltip.value ? (openBlock(), createBlock(unref(TMagicTooltip), { key: 0 }, {
374
377
  content: withCtx(() => [
375
- createElementVNode("div", { innerHTML: tooltip.value }, null, 8, _hoisted_2$8)
378
+ createElementVNode("div", { innerHTML: tooltip.value }, null, 8, _hoisted_3$4)
376
379
  ]),
377
380
  default: withCtx(() => [
378
381
  (openBlock(), createBlock(resolveDynamicComponent(tagName.value), {
@@ -405,7 +408,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
405
408
  key: 2,
406
409
  innerHTML: extra.value,
407
410
  class: "m-form-tip"
408
- }, null, 8, _hoisted_3$4)) : createCommentVNode("", true)
411
+ }, null, 8, _hoisted_4$4)) : createCommentVNode("", true)
409
412
  ]),
410
413
  _: 1
411
414
  }, 8, ["style", "class", "prop", "label-width", "rules"]),
@@ -416,7 +419,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
416
419
  content: withCtx(() => [
417
420
  createElementVNode("div", {
418
421
  innerHTML: _ctx.config.tip
419
- }, null, 8, _hoisted_4$4)
422
+ }, null, 8, _hoisted_5$4)
420
423
  ]),
421
424
  default: withCtx(() => [
422
425
  createVNode(unref(TMagicIcon), { style: { "line-height": "40px", "margin-left": "5px" } }, {
@@ -439,12 +442,12 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
439
442
  label: withCtx(() => [
440
443
  createElementVNode("span", {
441
444
  innerHTML: type.value === "checkbox" ? "" : text.value
442
- }, null, 8, _hoisted_5$4)
445
+ }, null, 8, _hoisted_6$1)
443
446
  ]),
444
447
  default: withCtx(() => [
445
448
  tooltip.value ? (openBlock(), createBlock(unref(TMagicTooltip), { key: 0 }, {
446
449
  content: withCtx(() => [
447
- createElementVNode("div", { innerHTML: tooltip.value }, null, 8, _hoisted_6$1)
450
+ createElementVNode("div", { innerHTML: tooltip.value }, null, 8, _hoisted_7$1)
448
451
  ]),
449
452
  default: withCtx(() => [
450
453
  (openBlock(), createBlock(resolveDynamicComponent(tagName.value), {
@@ -473,7 +476,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
473
476
  key: 2,
474
477
  innerHTML: extra.value,
475
478
  class: "m-form-tip"
476
- }, null, 8, _hoisted_7$1)) : createCommentVNode("", true)
479
+ }, null, 8, _hoisted_8$1)) : createCommentVNode("", true)
477
480
  ]),
478
481
  _: 1
479
482
  }, 8, ["style", "class", "prop", "label-width", "rules"]),
@@ -484,7 +487,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
484
487
  content: withCtx(() => [
485
488
  createElementVNode("div", {
486
489
  innerHTML: _ctx.config.tip
487
- }, null, 8, _hoisted_8$1)
490
+ }, null, 8, _hoisted_9)
488
491
  ]),
489
492
  default: withCtx(() => [
490
493
  createVNode(unref(TMagicIcon), { style: { "line-height": "40px", "margin-left": "5px" } }, {
@@ -506,12 +509,12 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
506
509
  label: withCtx(() => [
507
510
  createElementVNode("span", {
508
511
  innerHTML: type.value === "checkbox" ? "" : text.value
509
- }, null, 8, _hoisted_9)
512
+ }, null, 8, _hoisted_10)
510
513
  ]),
511
514
  default: withCtx(() => [
512
515
  tooltip.value ? (openBlock(), createBlock(unref(TMagicTooltip), { key: 0 }, {
513
516
  content: withCtx(() => [
514
- createElementVNode("div", { innerHTML: tooltip.value }, null, 8, _hoisted_10)
517
+ createElementVNode("div", { innerHTML: tooltip.value }, null, 8, _hoisted_11)
515
518
  ]),
516
519
  default: withCtx(() => [
517
520
  (openBlock(), createBlock(resolveDynamicComponent(tagName.value), {
@@ -540,7 +543,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
540
543
  key: 2,
541
544
  innerHTML: extra.value,
542
545
  class: "m-form-tip"
543
- }, null, 8, _hoisted_11)) : createCommentVNode("", true)
546
+ }, null, 8, _hoisted_12)) : createCommentVNode("", true)
544
547
  ]),
545
548
  _: 1
546
549
  }, 8, ["style", "class", "prop", "label-width", "rules"]),
@@ -551,7 +554,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
551
554
  content: withCtx(() => [
552
555
  createElementVNode("div", {
553
556
  innerHTML: _ctx.config.tip
554
- }, null, 8, _hoisted_12)
557
+ }, null, 8, _hoisted_13)
555
558
  ]),
556
559
  default: withCtx(() => [
557
560
  createVNode(unref(TMagicIcon), { style: { "line-height": "40px", "margin-left": "5px" } }, {
@@ -582,7 +585,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
582
585
  }, null, 8, ["model", "last-values", "is-compare", "config", "size", "disabled", "step-active", "expand-more", "label-width", "prop"]);
583
586
  }), 128)) : createCommentVNode("", true)
584
587
  ], 64)) : createCommentVNode("", true),
585
- _ctx.config.expand && type.value !== "fieldset" ? (openBlock(), createElementBlock("div", _hoisted_13, [
588
+ _ctx.config.expand && type.value !== "fieldset" ? (openBlock(), createElementBlock("div", _hoisted_14, [
586
589
  createVNode(unref(TMagicButton), {
587
590
  type: "primary",
588
591
  size: "small",
@@ -596,7 +599,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
596
599
  _: 1
597
600
  })
598
601
  ])) : createCommentVNode("", true)
599
- ], 6)) : createCommentVNode("", true);
602
+ ], 14, _hoisted_1$e)) : createCommentVNode("", true);
600
603
  };
601
604
  }
602
605
  });
@@ -1679,267 +1682,272 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
1679
1682
  toggleRowSelection
1680
1683
  });
1681
1684
  return (_ctx, _cache) => {
1682
- return openBlock(), createElementBlock("div", {
1683
- ref_key: "mTable",
1684
- ref: mTable,
1685
- class: normalizeClass(["m-fields-table", { "m-fields-table-item-extra": _ctx.config.itemExtra }])
1685
+ return openBlock(), createBlock(Teleport, {
1686
+ to: "body",
1687
+ disabled: !isFullscreen.value
1686
1688
  }, [
1687
- _ctx.config.extra ? (openBlock(), createElementBlock("span", {
1688
- key: 0,
1689
- style: { "color": "rgba(0, 0, 0, 0.45)" },
1690
- innerHTML: _ctx.config.extra
1691
- }, null, 8, _hoisted_1$9)) : createCommentVNode("", true),
1692
- createVNode(unref(TMagicTooltip), {
1693
- content: "拖拽可排序",
1694
- placement: "left-start",
1695
- disabled: _ctx.config.dropSort !== true
1696
- }, {
1697
- default: withCtx(() => [
1698
- _ctx.model[modelName.value] ? (openBlock(), createBlock(unref(TMagicTable), {
1699
- ref_key: "tMagicTable",
1700
- ref: tMagicTable,
1701
- style: { "width": "100%" },
1702
- "row-key": _ctx.config.rowKey || "id",
1703
- data: data.value,
1704
- lastData: lastData.value,
1705
- border: _ctx.config.border,
1706
- "max-height": _ctx.config.maxHeight,
1707
- "default-expand-all": true,
1708
- key: updateKey.value,
1709
- onSelect: selectHandle,
1710
- onSortChange: sortChange
1711
- }, {
1712
- default: withCtx(() => [
1713
- _ctx.config.itemExtra ? (openBlock(), createBlock(unref(TMagicTableColumn), {
1714
- key: 0,
1715
- fixed: "left",
1716
- width: "30",
1717
- type: "expand"
1718
- }, {
1719
- default: withCtx((scope) => [
1720
- createElementVNode("span", {
1721
- innerHTML: itemExtra(_ctx.config.itemExtra, scope.$index),
1722
- class: "m-form-tip"
1723
- }, null, 8, _hoisted_2$3)
1724
- ]),
1725
- _: 1
1726
- })) : createCommentVNode("", true),
1727
- createVNode(unref(TMagicTableColumn), {
1728
- label: "操作",
1729
- width: _ctx.config.operateColWidth || 55,
1730
- align: "center",
1731
- fixed: _ctx.config.fixed === false ? void 0 : "left"
1732
- }, {
1733
- default: withCtx((scope) => [
1734
- renderSlot(_ctx.$slots, "operateCol", { scope }),
1735
- withDirectives(createVNode(unref(TMagicIcon), {
1736
- class: "m-table-delete-icon",
1737
- onClick: ($event) => removeHandler(scope.$index + 1 + pagecontext.value * pagesize.value - 1)
1738
- }, {
1739
- default: withCtx(() => [
1740
- createVNode(unref(Delete))
1741
- ]),
1742
- _: 2
1743
- }, 1032, ["onClick"]), [
1744
- [vShow, showDelete(scope.$index + 1 + pagecontext.value * pagesize.value - 1)]
1745
- ])
1746
- ]),
1747
- _: 3
1748
- }, 8, ["width", "fixed"]),
1749
- _ctx.sort && _ctx.model[modelName.value] && _ctx.model[modelName.value].length > 1 ? (openBlock(), createBlock(unref(TMagicTableColumn), {
1750
- key: 1,
1751
- label: "排序",
1752
- width: "60"
1753
- }, {
1754
- default: withCtx((scope) => [
1755
- scope.$index + 1 + pagecontext.value * pagesize.value - 1 !== 0 ? (openBlock(), createBlock(unref(TMagicTooltip), {
1756
- key: 0,
1757
- content: "点击上移,双击置顶",
1758
- placement: "top"
1759
- }, {
1760
- default: withCtx(() => [
1761
- createVNode(unref(TMagicButton), {
1762
- plain: "",
1763
- size: "small",
1764
- type: "primary",
1765
- icon: unref(ArrowUp),
1766
- disabled: _ctx.disabled,
1767
- text: "",
1768
- onClick: ($event) => upHandler(scope.$index + 1 + pagecontext.value * pagesize.value - 1),
1769
- onDblclick: ($event) => topHandler(scope.$index + 1 + pagecontext.value * pagesize.value - 1)
1770
- }, null, 8, ["icon", "disabled", "onClick", "onDblclick"])
1771
- ]),
1772
- _: 2
1773
- }, 1024)) : createCommentVNode("", true),
1774
- scope.$index + 1 + pagecontext.value * pagesize.value - 1 !== _ctx.model[modelName.value].length - 1 ? (openBlock(), createBlock(unref(TMagicTooltip), {
1775
- key: 1,
1776
- content: "点击下移,双击置底",
1777
- placement: "top"
1778
- }, {
1779
- default: withCtx(() => [
1780
- createVNode(unref(TMagicButton), {
1781
- plain: "",
1782
- size: "small",
1783
- type: "primary",
1784
- icon: unref(ArrowDown),
1785
- disabled: _ctx.disabled,
1786
- text: "",
1787
- onClick: ($event) => downHandler(scope.$index + 1 + pagecontext.value * pagesize.value - 1),
1788
- onDblclick: ($event) => bottomHandler(scope.$index + 1 + pagecontext.value * pagesize.value - 1)
1789
- }, null, 8, ["icon", "disabled", "onClick", "onDblclick"])
1790
- ]),
1791
- _: 2
1792
- }, 1024)) : createCommentVNode("", true)
1793
- ]),
1794
- _: 1
1795
- })) : createCommentVNode("", true),
1796
- selection.value ? (openBlock(), createBlock(unref(TMagicTableColumn), {
1797
- key: 2,
1798
- align: "center",
1799
- "header-align": "center",
1800
- type: "selection",
1801
- width: "45"
1802
- })) : createCommentVNode("", true),
1803
- _ctx.showIndex && _ctx.config.showIndex ? (openBlock(), createBlock(unref(TMagicTableColumn), {
1804
- key: 3,
1805
- width: "60",
1806
- label: "序号"
1807
- }, {
1808
- default: withCtx((scope) => [
1809
- createTextVNode(toDisplayString(scope.$index + 1 + pagecontext.value * pagesize.value), 1)
1810
- ]),
1811
- _: 1
1812
- })) : createCommentVNode("", true),
1813
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.config.items, (column, index) => {
1814
- return openBlock(), createElementBlock(Fragment, null, [
1815
- column.type !== "hidden" && display$1(column.display) ? (openBlock(), createBlock(unref(TMagicTableColumn), {
1816
- prop: column.name,
1817
- width: column.width,
1818
- label: column.label,
1819
- sortable: column.sortable,
1820
- "sort-orders": ["ascending", "descending"],
1821
- key: column[unref(mForm)?.keyProp || "__key"] ?? index,
1822
- "class-name": _ctx.config.dropSort === true ? "el-table__column--dropable" : ""
1823
- }, {
1824
- default: withCtx((scope) => [
1825
- scope.$index > -1 ? (openBlock(), createBlock(_sfc_main$z, {
1826
- key: 0,
1827
- labelWidth: "0",
1828
- disabled: _ctx.disabled,
1829
- prop: getProp(scope.$index),
1830
- rules: column.rules,
1831
- config: makeConfig(column, scope.row),
1832
- model: scope.row,
1833
- lastValues: lastData.value[scope.$index],
1834
- "is-compare": _ctx.isCompare,
1835
- size: _ctx.size,
1836
- onChange: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("change", _ctx.model[modelName.value])),
1837
- onAddDiffCount: _cache[1] || (_cache[1] = ($event) => onAddDiffCount())
1838
- }, null, 8, ["disabled", "prop", "rules", "config", "model", "lastValues", "is-compare", "size"])) : createCommentVNode("", true)
1839
- ]),
1840
- _: 2
1841
- }, 1032, ["prop", "width", "label", "sortable", "class-name"])) : createCommentVNode("", true)
1842
- ], 64);
1843
- }), 256))
1844
- ]),
1845
- _: 3
1846
- }, 8, ["row-key", "data", "lastData", "border", "max-height"])) : createCommentVNode("", true)
1847
- ]),
1848
- _: 3
1849
- }, 8, ["disabled"]),
1850
- renderSlot(_ctx.$slots, "default"),
1851
- createElementVNode("div", _hoisted_3, [
1852
- addable.value ? (openBlock(), createBlock(unref(TMagicButton), {
1689
+ createElementVNode("div", {
1690
+ ref_key: "mTable",
1691
+ ref: mTable,
1692
+ class: normalizeClass(["m-fields-table", { "m-fields-table-item-extra": _ctx.config.itemExtra }])
1693
+ }, [
1694
+ _ctx.config.extra ? (openBlock(), createElementBlock("span", {
1853
1695
  key: 0,
1854
- size: "small",
1855
- type: "primary",
1856
- disabled: _ctx.disabled,
1857
- plain: "",
1858
- onClick: _cache[2] || (_cache[2] = ($event) => newHandler())
1696
+ style: { "color": "rgba(0, 0, 0, 0.45)" },
1697
+ innerHTML: _ctx.config.extra
1698
+ }, null, 8, _hoisted_1$9)) : createCommentVNode("", true),
1699
+ createVNode(unref(TMagicTooltip), {
1700
+ content: "拖拽可排序",
1701
+ placement: "left-start",
1702
+ disabled: _ctx.config.dropSort !== true
1859
1703
  }, {
1860
1704
  default: withCtx(() => [
1861
- createTextVNode("新增一行")
1705
+ _ctx.model[modelName.value] ? (openBlock(), createBlock(unref(TMagicTable), {
1706
+ ref_key: "tMagicTable",
1707
+ ref: tMagicTable,
1708
+ style: { "width": "100%" },
1709
+ "row-key": _ctx.config.rowKey || "id",
1710
+ data: data.value,
1711
+ lastData: lastData.value,
1712
+ border: _ctx.config.border,
1713
+ "max-height": _ctx.config.maxHeight,
1714
+ "default-expand-all": true,
1715
+ key: updateKey.value,
1716
+ onSelect: selectHandle,
1717
+ onSortChange: sortChange
1718
+ }, {
1719
+ default: withCtx(() => [
1720
+ _ctx.config.itemExtra ? (openBlock(), createBlock(unref(TMagicTableColumn), {
1721
+ key: 0,
1722
+ fixed: "left",
1723
+ width: "30",
1724
+ type: "expand"
1725
+ }, {
1726
+ default: withCtx((scope) => [
1727
+ createElementVNode("span", {
1728
+ innerHTML: itemExtra(_ctx.config.itemExtra, scope.$index),
1729
+ class: "m-form-tip"
1730
+ }, null, 8, _hoisted_2$3)
1731
+ ]),
1732
+ _: 1
1733
+ })) : createCommentVNode("", true),
1734
+ createVNode(unref(TMagicTableColumn), {
1735
+ label: "操作",
1736
+ width: _ctx.config.operateColWidth || 55,
1737
+ align: "center",
1738
+ fixed: _ctx.config.fixed === false ? void 0 : "left"
1739
+ }, {
1740
+ default: withCtx((scope) => [
1741
+ renderSlot(_ctx.$slots, "operateCol", { scope }),
1742
+ withDirectives(createVNode(unref(TMagicIcon), {
1743
+ class: "m-table-delete-icon",
1744
+ onClick: ($event) => removeHandler(scope.$index + 1 + pagecontext.value * pagesize.value - 1)
1745
+ }, {
1746
+ default: withCtx(() => [
1747
+ createVNode(unref(Delete))
1748
+ ]),
1749
+ _: 2
1750
+ }, 1032, ["onClick"]), [
1751
+ [vShow, showDelete(scope.$index + 1 + pagecontext.value * pagesize.value - 1)]
1752
+ ])
1753
+ ]),
1754
+ _: 3
1755
+ }, 8, ["width", "fixed"]),
1756
+ _ctx.sort && _ctx.model[modelName.value] && _ctx.model[modelName.value].length > 1 ? (openBlock(), createBlock(unref(TMagicTableColumn), {
1757
+ key: 1,
1758
+ label: "排序",
1759
+ width: "60"
1760
+ }, {
1761
+ default: withCtx((scope) => [
1762
+ scope.$index + 1 + pagecontext.value * pagesize.value - 1 !== 0 ? (openBlock(), createBlock(unref(TMagicTooltip), {
1763
+ key: 0,
1764
+ content: "点击上移,双击置顶",
1765
+ placement: "top"
1766
+ }, {
1767
+ default: withCtx(() => [
1768
+ createVNode(unref(TMagicButton), {
1769
+ plain: "",
1770
+ size: "small",
1771
+ type: "primary",
1772
+ icon: unref(ArrowUp),
1773
+ disabled: _ctx.disabled,
1774
+ text: "",
1775
+ onClick: ($event) => upHandler(scope.$index + 1 + pagecontext.value * pagesize.value - 1),
1776
+ onDblclick: ($event) => topHandler(scope.$index + 1 + pagecontext.value * pagesize.value - 1)
1777
+ }, null, 8, ["icon", "disabled", "onClick", "onDblclick"])
1778
+ ]),
1779
+ _: 2
1780
+ }, 1024)) : createCommentVNode("", true),
1781
+ scope.$index + 1 + pagecontext.value * pagesize.value - 1 !== _ctx.model[modelName.value].length - 1 ? (openBlock(), createBlock(unref(TMagicTooltip), {
1782
+ key: 1,
1783
+ content: "点击下移,双击置底",
1784
+ placement: "top"
1785
+ }, {
1786
+ default: withCtx(() => [
1787
+ createVNode(unref(TMagicButton), {
1788
+ plain: "",
1789
+ size: "small",
1790
+ type: "primary",
1791
+ icon: unref(ArrowDown),
1792
+ disabled: _ctx.disabled,
1793
+ text: "",
1794
+ onClick: ($event) => downHandler(scope.$index + 1 + pagecontext.value * pagesize.value - 1),
1795
+ onDblclick: ($event) => bottomHandler(scope.$index + 1 + pagecontext.value * pagesize.value - 1)
1796
+ }, null, 8, ["icon", "disabled", "onClick", "onDblclick"])
1797
+ ]),
1798
+ _: 2
1799
+ }, 1024)) : createCommentVNode("", true)
1800
+ ]),
1801
+ _: 1
1802
+ })) : createCommentVNode("", true),
1803
+ selection.value ? (openBlock(), createBlock(unref(TMagicTableColumn), {
1804
+ key: 2,
1805
+ align: "center",
1806
+ "header-align": "center",
1807
+ type: "selection",
1808
+ width: "45"
1809
+ })) : createCommentVNode("", true),
1810
+ _ctx.showIndex && _ctx.config.showIndex ? (openBlock(), createBlock(unref(TMagicTableColumn), {
1811
+ key: 3,
1812
+ width: "60",
1813
+ label: "序号"
1814
+ }, {
1815
+ default: withCtx((scope) => [
1816
+ createTextVNode(toDisplayString(scope.$index + 1 + pagecontext.value * pagesize.value), 1)
1817
+ ]),
1818
+ _: 1
1819
+ })) : createCommentVNode("", true),
1820
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.config.items, (column, index) => {
1821
+ return openBlock(), createElementBlock(Fragment, null, [
1822
+ column.type !== "hidden" && display$1(column.display) ? (openBlock(), createBlock(unref(TMagicTableColumn), {
1823
+ prop: column.name,
1824
+ width: column.width,
1825
+ label: column.label,
1826
+ sortable: column.sortable,
1827
+ "sort-orders": ["ascending", "descending"],
1828
+ key: column[unref(mForm)?.keyProp || "__key"] ?? index,
1829
+ "class-name": _ctx.config.dropSort === true ? "el-table__column--dropable" : ""
1830
+ }, {
1831
+ default: withCtx((scope) => [
1832
+ scope.$index > -1 ? (openBlock(), createBlock(_sfc_main$z, {
1833
+ key: 0,
1834
+ labelWidth: "0",
1835
+ disabled: _ctx.disabled,
1836
+ prop: getProp(scope.$index),
1837
+ rules: column.rules,
1838
+ config: makeConfig(column, scope.row),
1839
+ model: scope.row,
1840
+ lastValues: lastData.value[scope.$index],
1841
+ "is-compare": _ctx.isCompare,
1842
+ size: _ctx.size,
1843
+ onChange: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("change", _ctx.model[modelName.value])),
1844
+ onAddDiffCount: _cache[1] || (_cache[1] = ($event) => onAddDiffCount())
1845
+ }, null, 8, ["disabled", "prop", "rules", "config", "model", "lastValues", "is-compare", "size"])) : createCommentVNode("", true)
1846
+ ]),
1847
+ _: 2
1848
+ }, 1032, ["prop", "width", "label", "sortable", "class-name"])) : createCommentVNode("", true)
1849
+ ], 64);
1850
+ }), 256))
1851
+ ]),
1852
+ _: 3
1853
+ }, 8, ["row-key", "data", "lastData", "border", "max-height"])) : createCommentVNode("", true)
1862
1854
  ]),
1863
- _: 1
1864
- }, 8, ["disabled"])) : createCommentVNode("", true),
1865
- createElementVNode("div", _hoisted_4, [
1866
- _ctx.enableToggleMode && _ctx.config.enableToggleMode !== false && !isFullscreen.value ? (openBlock(), createBlock(unref(TMagicButton), {
1855
+ _: 3
1856
+ }, 8, ["disabled"]),
1857
+ renderSlot(_ctx.$slots, "default"),
1858
+ createElementVNode("div", _hoisted_3, [
1859
+ addable.value ? (openBlock(), createBlock(unref(TMagicButton), {
1867
1860
  key: 0,
1868
- icon: unref(Grid),
1869
- size: "small",
1870
- type: "primary",
1871
- onClick: toggleMode
1872
- }, {
1873
- default: withCtx(() => [
1874
- createTextVNode("展开配置")
1875
- ]),
1876
- _: 1
1877
- }, 8, ["icon"])) : createCommentVNode("", true),
1878
- _ctx.config.enableFullscreen !== false ? (openBlock(), createBlock(unref(TMagicButton), {
1879
- key: 1,
1880
- icon: unref(FullScreen),
1881
1861
  size: "small",
1882
1862
  type: "primary",
1883
- onClick: toggleFullscreen
1884
- }, {
1885
- default: withCtx(() => [
1886
- createTextVNode(toDisplayString(isFullscreen.value ? "退出全屏" : "全屏编辑"), 1)
1887
- ]),
1888
- _: 1
1889
- }, 8, ["icon"])) : createCommentVNode("", true),
1890
- importable.value ? (openBlock(), createBlock(unref(TMagicUpload), {
1891
- key: 2,
1892
- style: { "display": "inline-block" },
1893
- ref_key: "excelBtn",
1894
- ref: excelBtn,
1895
- action: "/noop",
1896
- disabled: _ctx.disabled,
1897
- "on-change": excelHandler,
1898
- "auto-upload": false
1899
- }, {
1900
- default: withCtx(() => [
1901
- createVNode(unref(TMagicButton), {
1902
- size: "small",
1903
- type: "success",
1904
- disabled: _ctx.disabled,
1905
- plain: ""
1906
- }, {
1907
- default: withCtx(() => [
1908
- createTextVNode("导入EXCEL")
1909
- ]),
1910
- _: 1
1911
- }, 8, ["disabled"])
1912
- ]),
1913
- _: 1
1914
- }, 8, ["disabled"])) : createCommentVNode("", true),
1915
- importable.value ? (openBlock(), createBlock(unref(TMagicButton), {
1916
- key: 3,
1917
- size: "small",
1918
- type: "warning",
1919
1863
  disabled: _ctx.disabled,
1920
1864
  plain: "",
1921
- onClick: _cache[3] || (_cache[3] = ($event) => clearHandler())
1865
+ onClick: _cache[2] || (_cache[2] = ($event) => newHandler())
1922
1866
  }, {
1923
1867
  default: withCtx(() => [
1924
- createTextVNode("清空")
1868
+ createTextVNode("新增一行")
1925
1869
  ]),
1926
1870
  _: 1
1927
- }, 8, ["disabled"])) : createCommentVNode("", true)
1928
- ])
1929
- ]),
1930
- _ctx.config.pagination ? (openBlock(), createElementBlock("div", _hoisted_5, [
1931
- createVNode(unref(TMagicPagination), {
1932
- layout: "total, sizes, prev, pager, next, jumper",
1933
- "hide-on-single-page": _ctx.model[modelName.value].length < pagesize.value,
1934
- "current-page": pagecontext.value + 1,
1935
- "page-sizes": [pagesize.value, 60, 120, 300],
1936
- "page-size": pagesize.value,
1937
- total: _ctx.model[modelName.value].length,
1938
- onSizeChange: handleSizeChange,
1939
- onCurrentChange: handleCurrentChange
1940
- }, null, 8, ["hide-on-single-page", "current-page", "page-sizes", "page-size", "total"])
1941
- ])) : createCommentVNode("", true)
1942
- ], 2);
1871
+ }, 8, ["disabled"])) : createCommentVNode("", true),
1872
+ createElementVNode("div", _hoisted_4, [
1873
+ _ctx.enableToggleMode && _ctx.config.enableToggleMode !== false && !isFullscreen.value ? (openBlock(), createBlock(unref(TMagicButton), {
1874
+ key: 0,
1875
+ icon: unref(Grid),
1876
+ size: "small",
1877
+ type: "primary",
1878
+ onClick: toggleMode
1879
+ }, {
1880
+ default: withCtx(() => [
1881
+ createTextVNode("展开配置")
1882
+ ]),
1883
+ _: 1
1884
+ }, 8, ["icon"])) : createCommentVNode("", true),
1885
+ _ctx.config.enableFullscreen !== false ? (openBlock(), createBlock(unref(TMagicButton), {
1886
+ key: 1,
1887
+ icon: unref(FullScreen),
1888
+ size: "small",
1889
+ type: "primary",
1890
+ onClick: toggleFullscreen
1891
+ }, {
1892
+ default: withCtx(() => [
1893
+ createTextVNode(toDisplayString(isFullscreen.value ? "退出全屏" : "全屏编辑"), 1)
1894
+ ]),
1895
+ _: 1
1896
+ }, 8, ["icon"])) : createCommentVNode("", true),
1897
+ importable.value ? (openBlock(), createBlock(unref(TMagicUpload), {
1898
+ key: 2,
1899
+ style: { "display": "inline-block" },
1900
+ ref_key: "excelBtn",
1901
+ ref: excelBtn,
1902
+ action: "/noop",
1903
+ disabled: _ctx.disabled,
1904
+ "on-change": excelHandler,
1905
+ "auto-upload": false
1906
+ }, {
1907
+ default: withCtx(() => [
1908
+ createVNode(unref(TMagicButton), {
1909
+ size: "small",
1910
+ type: "success",
1911
+ disabled: _ctx.disabled,
1912
+ plain: ""
1913
+ }, {
1914
+ default: withCtx(() => [
1915
+ createTextVNode("导入EXCEL")
1916
+ ]),
1917
+ _: 1
1918
+ }, 8, ["disabled"])
1919
+ ]),
1920
+ _: 1
1921
+ }, 8, ["disabled"])) : createCommentVNode("", true),
1922
+ importable.value ? (openBlock(), createBlock(unref(TMagicButton), {
1923
+ key: 3,
1924
+ size: "small",
1925
+ type: "warning",
1926
+ disabled: _ctx.disabled,
1927
+ plain: "",
1928
+ onClick: _cache[3] || (_cache[3] = ($event) => clearHandler())
1929
+ }, {
1930
+ default: withCtx(() => [
1931
+ createTextVNode("清空")
1932
+ ]),
1933
+ _: 1
1934
+ }, 8, ["disabled"])) : createCommentVNode("", true)
1935
+ ])
1936
+ ]),
1937
+ _ctx.config.pagination ? (openBlock(), createElementBlock("div", _hoisted_5, [
1938
+ createVNode(unref(TMagicPagination), {
1939
+ layout: "total, sizes, prev, pager, next, jumper",
1940
+ "hide-on-single-page": _ctx.model[modelName.value].length < pagesize.value,
1941
+ "current-page": pagecontext.value + 1,
1942
+ "page-sizes": [pagesize.value, 60, 120, 300],
1943
+ "page-size": pagesize.value,
1944
+ total: _ctx.model[modelName.value].length,
1945
+ onSizeChange: handleSizeChange,
1946
+ onCurrentChange: handleCurrentChange
1947
+ }, null, 8, ["hide-on-single-page", "current-page", "page-sizes", "page-size", "total"])
1948
+ ])) : createCommentVNode("", true)
1949
+ ], 2)
1950
+ ], 8, ["disabled"]);
1943
1951
  };
1944
1952
  }
1945
1953
  });
@@ -2175,7 +2183,7 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
2175
2183
  useAddField(props.prop);
2176
2184
  const requestFunc = getConfig("request");
2177
2185
  const tMagicCascader = ref();
2178
- const options = Array.isArray(props.config.options) ? ref(props.config.options) : ref([]);
2186
+ const options = ref([]);
2179
2187
  const remoteData = ref(null);
2180
2188
  const setRemoteOptions = async function() {
2181
2189
  const { config } = props;
@@ -2212,6 +2220,10 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
2212
2220
  );
2213
2221
  } else if (!props.config.options?.length || props.config.remote) {
2214
2222
  Promise.resolve(setRemoteOptions());
2223
+ } else if (Array.isArray(props.config.options)) {
2224
+ watchEffect(() => {
2225
+ options.value = props.config.options;
2226
+ });
2215
2227
  }
2216
2228
  const changeHandler = (value) => {
2217
2229
  if (!tMagicCascader.value)
@@ -2232,7 +2244,7 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
2232
2244
  size: _ctx.size,
2233
2245
  placeholder: _ctx.config.placeholder,
2234
2246
  disabled: _ctx.disabled,
2235
- options: unref(options),
2247
+ options: options.value,
2236
2248
  props: {
2237
2249
  multiple: _ctx.config.multiple ?? false,
2238
2250
  emitPath: _ctx.config.emitPath ?? true,
@@ -3691,12 +3703,13 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
3691
3703
  });
3692
3704
  }
3693
3705
  if (props.config.remote) {
3694
- const unWacth = watch(
3706
+ const unWatch = watch(
3695
3707
  () => tMagicSelect.value?.scrollbarWrap,
3696
3708
  (scrollbarWrap) => {
3697
3709
  if (!scrollbarWrap) {
3698
3710
  return;
3699
3711
  }
3712
+ nextTick(() => unWatch());
3700
3713
  scrollbarWrap.addEventListener("scroll", async (e) => {
3701
3714
  const el = e.currentTarget;
3702
3715
  if (moreLoadingVisible.value) {
@@ -3713,7 +3726,6 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
3713
3726
  options.value = await getOptions();
3714
3727
  moreLoadingVisible.value = false;
3715
3728
  });
3716
- unWacth();
3717
3729
  },
3718
3730
  {
3719
3731
  immediate: true
@@ -4140,8 +4152,6 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
4140
4152
  }
4141
4153
  });
4142
4154
 
4143
- const index$1 = '';
4144
-
4145
4155
  const _hoisted_1$1 = { style: { "min-height": "1px" } };
4146
4156
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
4147
4157
  ...{