@tmagic/form 1.8.0-beta.13 → 1.8.0-beta.15

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 (77) hide show
  1. package/dist/es/Form.vue_vue_type_script_setup_true_lang.js +51 -16
  2. package/dist/es/FormDialog.vue_vue_type_script_setup_true_lang.js +12 -5
  3. package/dist/es/FormDrawer.vue_vue_type_script_setup_true_lang.js +38 -12
  4. package/dist/es/containers/Col.vue_vue_type_script_setup_true_lang.js +2 -1
  5. package/dist/es/containers/Container.vue_vue_type_script_setup_true_lang.js +27 -19
  6. package/dist/es/containers/GroupList.vue_vue_type_script_setup_true_lang.js +6 -5
  7. package/dist/es/containers/GroupListItem.vue_vue_type_script_setup_true_lang.js +41 -31
  8. package/dist/es/containers/Panel.vue_vue_type_script_setup_true_lang.js +16 -10
  9. package/dist/es/containers/table/ActionsColumn.vue_vue_type_script_setup_true_lang.js +13 -6
  10. package/dist/es/containers/table/Table.vue_vue_type_script_setup_true_lang.js +4 -2
  11. package/dist/es/containers/table/useTableColumns.js +5 -1
  12. package/dist/es/containers/table-group-list/TableGroupList.vue_vue_type_script_setup_true_lang.js +2 -1
  13. package/dist/es/fields/Cascader.vue_vue_type_script_setup_true_lang.js +5 -2
  14. package/dist/es/fields/Checkbox.vue_vue_type_script_setup_true_lang.js +4 -1
  15. package/dist/es/fields/CheckboxGroup.vue_vue_type_script_setup_true_lang.js +5 -2
  16. package/dist/es/fields/ColorPicker.vue_vue_type_script_setup_true_lang.js +4 -1
  17. package/dist/es/fields/Date.vue_vue_type_script_setup_true_lang.js +5 -2
  18. package/dist/es/fields/DateTime.vue_vue_type_script_setup_true_lang.js +5 -2
  19. package/dist/es/fields/Daterange.vue_vue_type_script_setup_true_lang.js +5 -2
  20. package/dist/es/fields/Display.vue_vue_type_script_setup_true_lang.js +5 -2
  21. package/dist/es/fields/DynamicField.vue_vue_type_script_setup_true_lang.js +4 -1
  22. package/dist/es/fields/Link.vue_vue_type_script_setup_true_lang.js +29 -7
  23. package/dist/es/fields/Number.vue_vue_type_script_setup_true_lang.js +7 -2
  24. package/dist/es/fields/NumberRange.vue_vue_type_script_setup_true_lang.js +4 -1
  25. package/dist/es/fields/RadioGroup.vue_vue_type_script_setup_true_lang.js +19 -9
  26. package/dist/es/fields/Select.vue_vue_type_script_setup_true_lang.js +4 -1
  27. package/dist/es/fields/Switch.vue_vue_type_script_setup_true_lang.js +4 -1
  28. package/dist/es/fields/Text.vue_vue_type_script_setup_true_lang.js +112 -77
  29. package/dist/es/fields/Textarea.vue_vue_type_script_setup_true_lang.js +4 -1
  30. package/dist/es/fields/Time.vue_vue_type_script_setup_true_lang.js +4 -1
  31. package/dist/es/fields/Timerange.vue_vue_type_script_setup_true_lang.js +6 -3
  32. package/dist/es/index.js +4 -4
  33. package/dist/es/plugin.js +3 -1
  34. package/dist/es/schema.js +11 -1
  35. package/dist/es/style.css +122 -8
  36. package/dist/es/submitForm.js +13 -11
  37. package/dist/es/utils/config.js +4 -1
  38. package/dist/es/utils/form.js +33 -3
  39. package/dist/es/utils/typeMatch.js +3 -1
  40. package/dist/style.css +122 -8
  41. package/dist/themes/magic-admin.css +499 -0
  42. package/dist/tmagic-form.umd.cjs +568 -300
  43. package/package.json +4 -4
  44. package/src/Form.vue +71 -18
  45. package/src/FormDialog.vue +14 -3
  46. package/src/FormDrawer.vue +40 -12
  47. package/src/containers/Col.vue +1 -0
  48. package/src/containers/Container.vue +21 -6
  49. package/src/containers/GroupList.vue +1 -1
  50. package/src/containers/GroupListItem.vue +28 -22
  51. package/src/containers/Panel.vue +10 -3
  52. package/src/containers/table/ActionsColumn.vue +10 -4
  53. package/src/containers/table/Table.vue +1 -0
  54. package/src/containers/table/useTableColumns.ts +7 -3
  55. package/src/containers/table-group-list/TableGroupList.vue +7 -1
  56. package/src/fields/Link.vue +16 -3
  57. package/src/fields/Number.vue +2 -1
  58. package/src/fields/RadioGroup.vue +21 -6
  59. package/src/fields/Text.vue +43 -19
  60. package/src/plugin.ts +3 -0
  61. package/src/schema.ts +11 -0
  62. package/src/submitForm.ts +34 -15
  63. package/src/theme/container.scss +3 -0
  64. package/src/theme/fieldset.scss +51 -0
  65. package/src/theme/form.scss +6 -0
  66. package/src/theme/group-list.scss +9 -7
  67. package/src/theme/index.scss +1 -0
  68. package/src/theme/link.scss +17 -0
  69. package/src/theme/panel.scss +1 -1
  70. package/src/theme/radio-group.scss +23 -0
  71. package/src/theme/tabs.scss +2 -2
  72. package/src/theme/text.scss +38 -0
  73. package/src/theme/themes/magic-admin/index.scss +95 -0
  74. package/src/utils/config.ts +7 -1
  75. package/src/utils/form.ts +37 -0
  76. package/src/utils/typeMatch.ts +10 -1
  77. package/types/index.d.ts +77 -5
@@ -1,15 +1,16 @@
1
1
  import { filterFunction } from "../utils/form.js";
2
2
  import Container_default from "./Container.js";
3
3
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, inject, openBlock, ref, unref, vShow, withCtx, withDirectives } from "vue";
4
- import { TMagicButton, TMagicCard, TMagicIcon, TMagicInputNumber, TMagicPopover } from "@tmagic/design";
5
- import { CaretBottom, CaretRight, CaretTop, Delete, DocumentCopy, Position } from "@element-plus/icons-vue";
4
+ import { TMagicButton, TMagicCard, TMagicIcon, TMagicInputNumber, TMagicPopover, TMagicTooltip } from "@tmagic/design";
5
+ import { ArrowDown, ArrowRight, Bottom, Delete, DocumentCopy, Position, Top } from "@element-plus/icons-vue";
6
6
  //#region packages/form/src/containers/GroupListItem.vue?vue&type=script&setup=true&lang.ts
7
- var _hoisted_1 = ["innerHTML"];
8
- var _hoisted_2 = { style: {
7
+ var _hoisted_1 = { class: "m-fields-group-list-item-header" };
8
+ var _hoisted_2 = ["innerHTML"];
9
+ var _hoisted_3 = { style: {
9
10
  "text-align": "right",
10
11
  "margin-top": "20px"
11
12
  } };
12
- var _hoisted_3 = ["innerHTML"];
13
+ var _hoisted_4 = ["innerHTML"];
13
14
  var GroupListItem_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
14
15
  name: "MFormGroupListItem",
15
16
  __name: "GroupListItem",
@@ -46,7 +47,10 @@ var GroupListItem_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
46
47
  [mForm?.keyProp || "__key"]: `${props.config[mForm?.keyProp || "__key"]}${String(props.index)}`
47
48
  }));
48
49
  const title = computed(() => {
49
- if (props.config.titleKey && props.model[props.config.titleKey]) return props.model[props.config.titleKey];
50
+ if (props.config.titleKey && props.model[props.config.titleKey]) {
51
+ const { titlePrefix } = props.config;
52
+ return titlePrefix ? `${titlePrefix} ${String(props.index + 1)}: ${props.model[props.config.titleKey]}` : `${props.model[props.config.titleKey]}`;
53
+ }
50
54
  if (props.config.title) return filterFunction(mForm, props.config.title, props);
51
55
  return `${props.config.titlePrefix || "组"} ${String(props.index + 1)}`;
52
56
  });
@@ -85,33 +89,39 @@ var GroupListItem_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
85
89
  return (_ctx, _cache) => {
86
90
  return openBlock(), createBlock(unref(TMagicCard), {
87
91
  class: "m-fields-group-list-item",
92
+ flat: __props.config.flat,
88
93
  "body-style": { display: expand.value ? "block" : "none" }
89
94
  }, {
90
- header: withCtx(() => [createElementVNode("div", null, [
95
+ header: withCtx(() => [createElementVNode("div", _hoisted_1, [
91
96
  createVNode(unref(TMagicButton), {
92
97
  link: "",
93
98
  disabled: __props.disabled,
94
- onClick: expandHandler
99
+ onClick: expandHandler,
100
+ class: "expand-button"
95
101
  }, {
96
102
  default: withCtx(() => [createVNode(unref(TMagicIcon), null, {
97
- default: withCtx(() => [expand.value ? (openBlock(), createBlock(unref(CaretBottom), { key: 0 })) : (openBlock(), createBlock(unref(CaretRight), { key: 1 }))]),
103
+ default: withCtx(() => [expand.value ? (openBlock(), createBlock(unref(ArrowDown), { key: 0 })) : (openBlock(), createBlock(unref(ArrowRight), { key: 1 }))]),
98
104
  _: 1
99
- }), createElementVNode("span", { innerHTML: title.value }, null, 8, _hoisted_1)]),
105
+ })]),
100
106
  _: 1
101
107
  }, 8, ["disabled"]),
102
- !__props.isCompare ? withDirectives((openBlock(), createBlock(unref(TMagicButton), {
103
- key: 0,
104
- type: "danger",
105
- size: "small",
106
- link: "",
107
- icon: unref(Delete),
108
- disabled: __props.disabled,
109
- onClick: removeHandler
110
- }, null, 8, ["icon", "disabled"])), [[vShow, showDelete.value]]) : createCommentVNode("v-if", true),
108
+ createElementVNode("span", { innerHTML: title.value }, null, 8, _hoisted_2),
109
+ createVNode(unref(TMagicTooltip), { content: `删除 ${title.value}` }, {
110
+ default: withCtx(() => [!__props.isCompare ? withDirectives((openBlock(), createBlock(unref(TMagicButton), {
111
+ key: 0,
112
+ size: "default",
113
+ link: "",
114
+ class: "delete-button",
115
+ icon: unref(Delete),
116
+ disabled: __props.disabled,
117
+ onClick: removeHandler
118
+ }, null, 8, ["icon", "disabled"])), [[vShow, showDelete.value]]) : createCommentVNode("v-if", true)]),
119
+ _: 1
120
+ }, 8, ["content"]),
111
121
  copyable.value && !__props.isCompare ? (openBlock(), createBlock(unref(TMagicButton), {
112
- key: 1,
122
+ key: 0,
113
123
  link: "",
114
- size: "small",
124
+ size: "default",
115
125
  type: "primary",
116
126
  icon: unref(DocumentCopy),
117
127
  disabled: __props.disabled,
@@ -120,27 +130,27 @@ var GroupListItem_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
120
130
  default: withCtx(() => [..._cache[6] || (_cache[6] = [createTextVNode("复制", -1)])]),
121
131
  _: 1
122
132
  }, 8, ["icon", "disabled"])) : createCommentVNode("v-if", true),
123
- movable.value && !__props.isCompare ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [withDirectives(createVNode(unref(TMagicButton), {
133
+ movable.value && !__props.isCompare ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [withDirectives(createVNode(unref(TMagicButton), {
124
134
  link: "",
125
- size: "small",
135
+ size: "default",
126
136
  disabled: __props.disabled,
127
- icon: unref(CaretTop),
137
+ icon: unref(Top),
128
138
  onClick: _cache[0] || (_cache[0] = ($event) => changeOrder(-1))
129
139
  }, {
130
140
  default: withCtx(() => [..._cache[7] || (_cache[7] = [createTextVNode("上移", -1)])]),
131
141
  _: 1
132
142
  }, 8, ["disabled", "icon"]), [[vShow, __props.index !== 0]]), withDirectives(createVNode(unref(TMagicButton), {
133
143
  link: "",
134
- size: "small",
144
+ size: "default",
135
145
  disabled: __props.disabled,
136
- icon: unref(CaretBottom),
146
+ icon: unref(Bottom),
137
147
  onClick: _cache[1] || (_cache[1] = ($event) => changeOrder(1))
138
148
  }, {
139
149
  default: withCtx(() => [..._cache[8] || (_cache[8] = [createTextVNode("下移", -1)])]),
140
150
  _: 1
141
151
  }, 8, ["disabled", "icon"]), [[vShow, __props.index !== length.value - 1]])], 64)) : createCommentVNode("v-if", true),
142
152
  __props.config.moveSpecifyLocation && !__props.isCompare ? (openBlock(), createBlock(unref(TMagicPopover), {
143
- key: 3,
153
+ key: 2,
144
154
  trigger: "click",
145
155
  placement: "top",
146
156
  width: "200",
@@ -168,7 +178,7 @@ var GroupListItem_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
168
178
  disabled: __props.disabled
169
179
  }, null, 8, ["modelValue", "disabled"]),
170
180
  _cache[11] || (_cache[11] = createTextVNode("行 ", -1))
171
- ]), createElementVNode("div", _hoisted_2, [createVNode(unref(TMagicButton), {
181
+ ]), createElementVNode("div", _hoisted_3, [createVNode(unref(TMagicButton), {
172
182
  size: "small",
173
183
  text: "",
174
184
  onClick: _cache[4] || (_cache[4] = ($event) => moveSpecifyLocationVisible.value = false)
@@ -186,10 +196,10 @@ var GroupListItem_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
186
196
  _: 1
187
197
  }, 8, ["visible"])) : createCommentVNode("v-if", true),
188
198
  itemExtra.value ? (openBlock(), createElementBlock("span", {
189
- key: 4,
199
+ key: 3,
190
200
  innerHTML: itemExtra.value,
191
201
  class: "m-form-tip"
192
- }, null, 8, _hoisted_3)) : createCommentVNode("v-if", true)
202
+ }, null, 8, _hoisted_4)) : createCommentVNode("v-if", true)
193
203
  ])]),
194
204
  default: withCtx(() => [expand.value ? (openBlock(), createBlock(Container_default, {
195
205
  key: 0,
@@ -214,7 +224,7 @@ var GroupListItem_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
214
224
  "disabled"
215
225
  ])) : createCommentVNode("v-if", true)]),
216
226
  _: 1
217
- }, 8, ["body-style"]);
227
+ }, 8, ["flat", "body-style"]);
218
228
  };
219
229
  }
220
230
  });
@@ -1,8 +1,8 @@
1
1
  import { filterFunction } from "../utils/form.js";
2
2
  import Container_default from "./Container.js";
3
- import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, inject, openBlock, ref, renderList, renderSlot, toDisplayString, unref, withCtx } from "vue";
3
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, inject, openBlock, ref, renderList, renderSlot, toDisplayString, unref, withCtx } from "vue";
4
4
  import { TMagicButton, TMagicCard } from "@tmagic/design";
5
- import { CaretBottom, CaretRight } from "@element-plus/icons-vue";
5
+ import { ArrowDown, ArrowRight } from "@element-plus/icons-vue";
6
6
  //#region packages/form/src/containers/Panel.vue?vue&type=script&setup=true&lang.ts
7
7
  var _hoisted_1 = { style: {
8
8
  "width": "100%",
@@ -28,7 +28,8 @@ var Panel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
28
28
  labelWidth: {},
29
29
  prop: {},
30
30
  size: {},
31
- disabled: { type: Boolean }
31
+ disabled: { type: Boolean },
32
+ hideExpand: { type: Boolean }
32
33
  },
33
34
  emits: ["change", "addDiffCount"],
34
35
  setup(__props, { expose: __expose, emit: __emit }) {
@@ -52,21 +53,26 @@ var Panel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
52
53
  return items.value && items.value.length ? (openBlock(), createBlock(unref(TMagicCard), {
53
54
  key: 0,
54
55
  class: "box-card m-form-panel",
55
- "body-style": { display: expand.value ? "block" : "none" }
56
+ "body-style": { display: expand.value ? "block" : "none" },
57
+ flat: __props.config.flat
56
58
  }, {
57
59
  header: withCtx(() => [createElementVNode("div", _hoisted_1, [
58
- createVNode(unref(TMagicButton), {
59
- style: { "padding": "0" },
60
+ !__props.hideExpand ? (openBlock(), createBlock(unref(TMagicButton), {
61
+ key: 0,
62
+ style: {
63
+ "padding": "0",
64
+ "margin-right": "10px"
65
+ },
60
66
  link: "",
61
- icon: expand.value ? unref(CaretBottom) : unref(CaretRight),
67
+ icon: expand.value ? unref(ArrowDown) : unref(ArrowRight),
62
68
  onClick: _cache[0] || (_cache[0] = ($event) => expand.value = !expand.value)
63
- }, null, 8, ["icon"]),
69
+ }, null, 8, ["icon"])) : createCommentVNode("v-if", true),
64
70
  renderSlot(_ctx.$slots, "header", {}, () => [createElementVNode("span", {
65
71
  style: { "cursor": "pointer" },
66
72
  onClick: _cache[1] || (_cache[1] = ($event) => expand.value = !expand.value)
67
73
  }, toDisplayString(filter(__props.config.title)), 1)]),
68
74
  __props.config && __props.config.extra ? (openBlock(), createElementBlock("span", {
69
- key: 0,
75
+ key: 1,
70
76
  innerHTML: __props.config.extra,
71
77
  class: "m-form-tip"
72
78
  }, null, 8, _hoisted_2)) : createCommentVNode("v-if", true)
@@ -122,7 +128,7 @@ var Panel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
122
128
  ]);
123
129
  }), 128))])]),
124
130
  _: 3
125
- }, 8, ["body-style"])) : createCommentVNode("v-if", true);
131
+ }, 8, ["body-style", "flat"])) : createCommentVNode("v-if", true);
126
132
  };
127
133
  }
128
134
  });
@@ -1,4 +1,4 @@
1
- import { Fragment, createBlock, createCommentVNode, createElementBlock, createVNode, defineComponent, inject, normalizeClass, openBlock, renderSlot, unref, vShow, withCtx, withDirectives } from "vue";
1
+ import { Fragment, createBlock, createCommentVNode, createElementBlock, createTextVNode, createVNode, defineComponent, inject, normalizeClass, openBlock, renderSlot, unref, vShow, withCtx, withDirectives } from "vue";
2
2
  import { cloneDeep } from "lodash-es";
3
3
  import { TMagicButton, TMagicTooltip } from "@tmagic/design";
4
4
  import { Delete, DocumentCopy, Sort } from "@element-plus/icons-vue";
@@ -15,7 +15,8 @@ var ActionsColumn_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
15
15
  index: {},
16
16
  row: {},
17
17
  prop: {},
18
- sortKey: {}
18
+ sortKey: {},
19
+ flat: { type: Boolean }
19
20
  },
20
21
  emits: ["change"],
21
22
  setup(__props, { emit: __emit }) {
@@ -86,19 +87,25 @@ var ActionsColumn_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
86
87
  type: "danger",
87
88
  link: "",
88
89
  title: "删除",
89
- icon: __props.config.deleteActionButtonIcon || unref(Delete),
90
+ icon: __props.flat ? void 0 : __props.config.deleteActionButtonIcon || unref(Delete),
90
91
  onClick: _cache[0] || (_cache[0] = ($event) => removeHandler(__props.index + 1 + __props.currentPage * __props.pageSize - 1))
91
- }, null, 8, ["icon"]), [[vShow, showDelete(__props.index + 1 + __props.currentPage * __props.pageSize - 1)]]),
92
+ }, {
93
+ default: withCtx(() => [__props.flat ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createTextVNode("删除")], 64)) : createCommentVNode("v-if", true)]),
94
+ _: 1
95
+ }, 8, ["icon"]), [[vShow, showDelete(__props.index + 1 + __props.currentPage * __props.pageSize - 1)]]),
92
96
  copyable(__props.index + 1 + __props.currentPage * __props.pageSize - 1) ? (openBlock(), createBlock(unref(TMagicButton), {
93
97
  key: 1,
94
98
  link: "",
95
99
  size: "small",
96
100
  type: "primary",
97
101
  title: "复制",
98
- icon: __props.config.copyActionButtonIcon || unref(DocumentCopy),
102
+ icon: __props.flat ? void 0 : __props.config.copyActionButtonIcon || unref(DocumentCopy),
99
103
  disabled: __props.disabled,
100
104
  onClick: _cache[1] || (_cache[1] = ($event) => copyHandler(__props.index + 1 + __props.currentPage * __props.pageSize - 1))
101
- }, null, 8, ["icon", "disabled"])) : createCommentVNode("v-if", true)
105
+ }, {
106
+ default: withCtx(() => [__props.flat ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createTextVNode("复制")], 64)) : createCommentVNode("v-if", true)]),
107
+ _: 1
108
+ }, 8, ["icon", "disabled"])) : createCommentVNode("v-if", true)
102
109
  ], 64);
103
110
  };
104
111
  }
@@ -99,14 +99,16 @@ var Table_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
99
99
  "default-expand-all": true,
100
100
  key: updateKey.value,
101
101
  onSelect: unref(selectHandle),
102
- onSortChange: sortChangeHandler
102
+ onSortChange: sortChangeHandler,
103
+ "empty-text": `暂无${__props.config.titlePrefix || ""}数据`
103
104
  }, null, 8, [
104
105
  "row-key",
105
106
  "columns",
106
107
  "data",
107
108
  "border",
108
109
  "max-height",
109
- "onSelect"
110
+ "onSelect",
111
+ "empty-text"
110
112
  ])) : createCommentVNode("v-if", true)]),
111
113
  _: 1
112
114
  }, 8, ["disabled"]),
@@ -1,4 +1,5 @@
1
1
  import { display, getDataByPage, sortArray } from "../../utils/form.js";
2
+ import { isGlobalFlat } from "../../utils/config.js";
2
3
  import Container_default from "../Container.js";
3
4
  import ActionsColumn_default from "./ActionsColumn.js";
4
5
  import SortColumn_default from "./SortColumn.js";
@@ -66,8 +67,10 @@ var useTableColumns = (props, emit, currentPage, pageSize, modelName) => {
66
67
  type: "selection",
67
68
  width: 45
68
69
  } });
69
- let actionFixed = props.config.fixed === false ? void 0 : "left";
70
+ const defaultFixed = isGlobalFlat.value ? "right" : "left";
71
+ let actionFixed = props.config.fixed === false ? void 0 : defaultFixed;
70
72
  if (typeof props.config.fixed === "string" && ["left", "right"].includes(props.config.fixed)) actionFixed = props.config.fixed;
73
+ const actionFlat = props.config.flat === void 0 && isGlobalFlat.value ? true : props.config.flat;
71
74
  const actionColumn = {
72
75
  props: {
73
76
  label: "操作",
@@ -77,6 +80,7 @@ var useTableColumns = (props, emit, currentPage, pageSize, modelName) => {
77
80
  },
78
81
  cell: ({ row, $index }) => h(ActionsColumn_default, {
79
82
  row,
83
+ flat: actionFlat,
80
84
  index: $index,
81
85
  model: props.model,
82
86
  config: props.config,
@@ -127,9 +127,10 @@ var TableGroupList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
127
127
  size: addButtonSize.value,
128
128
  plain: displayMode.value === "table",
129
129
  icon: unref(Plus),
130
+ text: "",
130
131
  disabled: __props.disabled
131
132
  }, currentConfig.value.addButtonConfig?.props || { type: "primary" }, { onClick: unref(newHandler) }), {
132
- default: withCtx(() => [createTextVNode(toDisplayString(currentConfig.value.addButtonConfig?.text || (displayMode.value === "table" ? "新增一行" : "新增")), 1)]),
133
+ default: withCtx(() => [createTextVNode(toDisplayString(currentConfig.value.addButtonConfig?.text || (displayMode.value === "table" ? `新增一行${groupListConfig.value.titlePrefix || ""}` : `新增${groupListConfig.value.titlePrefix || ""}`)), 1)]),
133
134
  _: 1
134
135
  }, 16, [
135
136
  "class",
@@ -1,6 +1,6 @@
1
+ import { filterFunction } from "../utils/form.js";
1
2
  import { useAddField } from "../utils/useAddField.js";
2
3
  import { getConfig } from "../utils/config.js";
3
- import { filterFunction } from "../utils/form.js";
4
4
  import { computed, createBlock, defineComponent, inject, openBlock, ref, unref, watchEffect } from "vue";
5
5
  import { TMagicCascader } from "@tmagic/design";
6
6
  //#region packages/form/src/fields/Cascader.vue?vue&type=script&setup=true&lang.ts
@@ -17,7 +17,10 @@ var Cascader_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
17
17
  disabled: { type: Boolean },
18
18
  size: {},
19
19
  lastValues: {},
20
- isCompare: { type: Boolean }
20
+ isCompare: { type: Boolean },
21
+ text: {},
22
+ labelWidth: {},
23
+ labelPosition: {}
21
24
  },
22
25
  emits: ["change"],
23
26
  setup(__props, { emit: __emit }) {
@@ -15,7 +15,10 @@ var Checkbox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
15
15
  disabled: { type: Boolean },
16
16
  size: {},
17
17
  lastValues: {},
18
- isCompare: { type: Boolean }
18
+ isCompare: { type: Boolean },
19
+ text: {},
20
+ labelWidth: {},
21
+ labelPosition: {}
19
22
  },
20
23
  emits: ["change"],
21
24
  setup(__props, { emit: __emit }) {
@@ -1,5 +1,5 @@
1
- import { useAddField } from "../utils/useAddField.js";
2
1
  import { filterFunction } from "../utils/form.js";
2
+ import { useAddField } from "../utils/useAddField.js";
3
3
  import { Fragment, computed, createBlock, createElementBlock, createTextVNode, defineComponent, inject, openBlock, renderList, toDisplayString, unref, withCtx } from "vue";
4
4
  import { TMagicCheckbox, TMagicCheckboxGroup } from "@tmagic/design";
5
5
  //#region packages/form/src/fields/CheckboxGroup.vue?vue&type=script&setup=true&lang.ts
@@ -16,7 +16,10 @@ var CheckboxGroup_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
16
16
  disabled: { type: Boolean },
17
17
  size: {},
18
18
  lastValues: {},
19
- isCompare: { type: Boolean }
19
+ isCompare: { type: Boolean },
20
+ text: {},
21
+ labelWidth: {},
22
+ labelPosition: {}
20
23
  },
21
24
  emits: ["change"],
22
25
  setup(__props, { emit: __emit }) {
@@ -15,7 +15,10 @@ var ColorPicker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
15
15
  disabled: { type: Boolean },
16
16
  size: {},
17
17
  lastValues: {},
18
- isCompare: { type: Boolean }
18
+ isCompare: { type: Boolean },
19
+ text: {},
20
+ labelWidth: {},
21
+ labelPosition: {}
19
22
  },
20
23
  emits: ["change"],
21
24
  setup(__props, { emit: __emit }) {
@@ -1,5 +1,5 @@
1
- import { useAddField } from "../utils/useAddField.js";
2
1
  import { datetimeFormatter } from "../utils/form.js";
2
+ import { useAddField } from "../utils/useAddField.js";
3
3
  import { createBlock, defineComponent, openBlock, unref } from "vue";
4
4
  import { TMagicDatePicker } from "@tmagic/design";
5
5
  //#region packages/form/src/fields/Date.vue?vue&type=script&setup=true&lang.ts
@@ -16,7 +16,10 @@ var Date_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
16
16
  disabled: { type: Boolean },
17
17
  size: {},
18
18
  lastValues: {},
19
- isCompare: { type: Boolean }
19
+ isCompare: { type: Boolean },
20
+ text: {},
21
+ labelWidth: {},
22
+ labelPosition: {}
20
23
  },
21
24
  emits: ["change"],
22
25
  setup(__props, { emit: __emit }) {
@@ -1,5 +1,5 @@
1
- import { useAddField } from "../utils/useAddField.js";
2
1
  import { datetimeFormatter } from "../utils/form.js";
2
+ import { useAddField } from "../utils/useAddField.js";
3
3
  import { createBlock, defineComponent, openBlock, unref } from "vue";
4
4
  import { TMagicDatePicker } from "@tmagic/design";
5
5
  //#region packages/form/src/fields/DateTime.vue?vue&type=script&setup=true&lang.ts
@@ -16,7 +16,10 @@ var DateTime_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
16
16
  disabled: { type: Boolean },
17
17
  size: {},
18
18
  lastValues: {},
19
- isCompare: { type: Boolean }
19
+ isCompare: { type: Boolean },
20
+ text: {},
21
+ labelWidth: {},
22
+ labelPosition: {}
20
23
  },
21
24
  emits: ["change"],
22
25
  setup(__props, { emit: __emit }) {
@@ -1,5 +1,5 @@
1
- import { useAddField } from "../utils/useAddField.js";
2
1
  import { datetimeFormatter } from "../utils/form.js";
2
+ import { useAddField } from "../utils/useAddField.js";
3
3
  import { createBlock, defineComponent, onUnmounted, openBlock, ref, unref, watch } from "vue";
4
4
  import { TMagicDatePicker } from "@tmagic/design";
5
5
  //#region packages/form/src/fields/Daterange.vue?vue&type=script&setup=true&lang.ts
@@ -16,7 +16,10 @@ var Daterange_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
16
16
  disabled: { type: Boolean },
17
17
  size: {},
18
18
  lastValues: {},
19
- isCompare: { type: Boolean }
19
+ isCompare: { type: Boolean },
20
+ text: {},
21
+ labelWidth: {},
22
+ labelPosition: {}
20
23
  },
21
24
  emits: ["change"],
22
25
  setup(__props, { emit: __emit }) {
@@ -1,5 +1,5 @@
1
- import { useAddField } from "../utils/useAddField.js";
2
1
  import { filterFunction } from "../utils/form.js";
2
+ import { useAddField } from "../utils/useAddField.js";
3
3
  import { computed, createCommentVNode, createElementBlock, defineComponent, inject, openBlock, toDisplayString } from "vue";
4
4
  //#region packages/form/src/fields/Display.vue?vue&type=script&setup=true&lang.ts
5
5
  var _hoisted_1 = { key: 0 };
@@ -16,7 +16,10 @@ var Display_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
16
16
  disabled: { type: Boolean },
17
17
  size: {},
18
18
  lastValues: {},
19
- isCompare: { type: Boolean }
19
+ isCompare: { type: Boolean },
20
+ text: {},
21
+ labelWidth: {},
22
+ labelPosition: {}
20
23
  },
21
24
  setup(__props) {
22
25
  const props = __props;
@@ -17,7 +17,10 @@ var DynamicField_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
17
17
  disabled: { type: Boolean },
18
18
  size: {},
19
19
  lastValues: {},
20
- isCompare: { type: Boolean }
20
+ isCompare: { type: Boolean },
21
+ text: {},
22
+ labelWidth: {},
23
+ labelPosition: {}
21
24
  },
22
25
  emits: ["change"],
23
26
  setup(__props, { emit: __emit }) {
@@ -1,11 +1,14 @@
1
1
  import { useAddField } from "../utils/useAddField.js";
2
+ import { isGlobalFlat } from "../utils/config.js";
2
3
  import FormDialog_default from "../FormDialog.js";
3
4
  import { computed, createElementBlock, createTextVNode, createVNode, defineComponent, inject, normalizeStyle, openBlock, readonly, ref, toDisplayString, unref, withCtx } from "vue";
4
- import { TMagicButton } from "@tmagic/design";
5
+ import { TMagicButton, TMagicIcon } from "@tmagic/design";
6
+ import { Notebook } from "@element-plus/icons-vue";
5
7
  //#region packages/form/src/fields/Link.vue?vue&type=script&setup=true&lang.ts
6
8
  var _hoisted_1 = ["href"];
7
- var _hoisted_2 = {
8
- key: 2,
9
+ var _hoisted_2 = ["href"];
10
+ var _hoisted_3 = {
11
+ key: 3,
9
12
  class: "m-fields-link"
10
13
  };
11
14
  var Link_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
@@ -21,7 +24,11 @@ var Link_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
21
24
  disabled: { type: Boolean },
22
25
  size: {},
23
26
  lastValues: {},
24
- isCompare: { type: Boolean }
27
+ isCompare: { type: Boolean },
28
+ text: {},
29
+ labelWidth: {},
30
+ labelPosition: {},
31
+ theme: {}
25
32
  },
26
33
  emits: ["change"],
27
34
  setup(__props, { emit: __emit }) {
@@ -64,15 +71,30 @@ var Link_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
64
71
  editor.value && (editor.value.dialogVisible = false);
65
72
  };
66
73
  return (_ctx, _cache) => {
67
- return __props.config.href && !__props.disabled ? (openBlock(), createElementBlock("a", {
74
+ return unref(isGlobalFlat) && __props.config.href && !__props.disabled ? (openBlock(), createElementBlock("a", {
68
75
  key: 0,
69
76
  target: "_blank",
70
77
  href: href.value,
78
+ class: "magic-admin-link",
71
79
  style: normalizeStyle(__props.config.css || {})
72
- }, toDisplayString(displayText.value), 13, _hoisted_1)) : __props.config.href && __props.disabled ? (openBlock(), createElementBlock("span", {
80
+ }, [createVNode(unref(TMagicButton), {
81
+ link: "",
82
+ type: "primary"
83
+ }, {
84
+ default: withCtx(() => [createVNode(unref(TMagicIcon), null, {
85
+ default: withCtx(() => [createVNode(unref(Notebook))]),
86
+ _: 1
87
+ }), createTextVNode(toDisplayString(displayText.value), 1)]),
88
+ _: 1
89
+ })], 12, _hoisted_1)) : __props.config.href && !__props.disabled ? (openBlock(), createElementBlock("a", {
73
90
  key: 1,
91
+ target: "_blank",
92
+ href: href.value,
93
+ style: normalizeStyle(__props.config.css || {})
94
+ }, toDisplayString(displayText.value), 13, _hoisted_2)) : __props.config.href && __props.disabled ? (openBlock(), createElementBlock("span", {
95
+ key: 2,
74
96
  style: normalizeStyle(__props.config.disabledCss || {})
75
- }, toDisplayString(displayText.value), 5)) : (openBlock(), createElementBlock("div", _hoisted_2, [createVNode(unref(TMagicButton), {
97
+ }, toDisplayString(displayText.value), 5)) : (openBlock(), createElementBlock("div", _hoisted_3, [createVNode(unref(TMagicButton), {
76
98
  link: "",
77
99
  type: "primary",
78
100
  onClick: editHandler
@@ -1,4 +1,5 @@
1
1
  import { useAddField } from "../utils/useAddField.js";
2
+ import { isGlobalFlat } from "../utils/config.js";
2
3
  import { createBlock, createCommentVNode, defineComponent, inject, openBlock, ref, unref, watch } from "vue";
3
4
  import { TMagicInputNumber } from "@tmagic/design";
4
5
  //#region packages/form/src/fields/Number.vue?vue&type=script&setup=true&lang.ts
@@ -15,7 +16,10 @@ var Number_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
15
16
  disabled: { type: Boolean },
16
17
  size: {},
17
18
  lastValues: {},
18
- isCompare: { type: Boolean }
19
+ isCompare: { type: Boolean },
20
+ text: {},
21
+ labelWidth: {},
22
+ labelPosition: {}
19
23
  },
20
24
  emits: ["change", "input"],
21
25
  setup(__props, { emit: __emit }) {
@@ -40,7 +44,7 @@ var Number_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
40
44
  modelValue: value.value,
41
45
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => value.value = $event),
42
46
  clearable: "",
43
- "controls-position": "right",
47
+ "controls-position": unref(isGlobalFlat) ? "" : "right",
44
48
  size: __props.size,
45
49
  max: __props.config.max,
46
50
  min: __props.config.min,
@@ -51,6 +55,7 @@ var Number_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
51
55
  onInput: inputHandler
52
56
  }, null, 8, [
53
57
  "modelValue",
58
+ "controls-position",
54
59
  "size",
55
60
  "max",
56
61
  "min",
@@ -16,7 +16,10 @@ var NumberRange_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
16
16
  disabled: { type: Boolean },
17
17
  size: {},
18
18
  lastValues: {},
19
- isCompare: { type: Boolean }
19
+ isCompare: { type: Boolean },
20
+ text: {},
21
+ labelWidth: {},
22
+ labelPosition: {}
20
23
  },
21
24
  emits: ["change"],
22
25
  setup(__props, { emit: __emit }) {