@funcho/ui 1.1.14 → 1.1.17

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 (97) hide show
  1. package/README.md +3 -0
  2. package/dist/cjs/business/DataTable/DataTable.vue.js +6 -0
  3. package/dist/cjs/business/EditFormCard/EditFormCard.vue.js +239 -0
  4. package/dist/cjs/business/EditFormCard/EditFormCard.vue3.js +10 -0
  5. package/dist/cjs/business/EditFormCard/index.js +12 -0
  6. package/dist/cjs/business/FormDialog/FormDialog.vue.js +129 -0
  7. package/dist/cjs/business/FormDialog/FormDialog.vue3.js +10 -0
  8. package/dist/cjs/business/FormDialog/index.js +12 -0
  9. package/dist/cjs/business/ProForm/ProForm.vue.js +45 -8
  10. package/dist/cjs/business/SidebarMainLayout/SidebarMainLayout.vue.js +1 -0
  11. package/dist/cjs/business/TreeCheckFilter/TreeCheckFilter.vue.js +1 -0
  12. package/dist/cjs/business/TreeTransfer/TreeTransfer.vue.js +1 -0
  13. package/dist/cjs/business/index.js +4 -0
  14. package/dist/cjs/components/Button/DangerButton.vue.js +2 -2
  15. package/dist/cjs/components/Cascader/Cascader.vue.js +3 -1
  16. package/dist/cjs/components/CheckboxGroup/CheckboxGroup.vue.js +3 -1
  17. package/dist/cjs/components/Dropdown/Dropdown.vue.js +3 -1
  18. package/dist/cjs/components/LovText/LovText.vue.js +61 -0
  19. package/dist/cjs/components/LovText/LovText.vue3.js +10 -0
  20. package/dist/cjs/components/LovText/index.js +12 -0
  21. package/dist/cjs/components/Radio/Radio.vue.js +3 -1
  22. package/dist/cjs/components/Select/Select.vue.js +3 -1
  23. package/dist/cjs/components/index.js +2 -0
  24. package/dist/cjs/index.js +22 -16
  25. package/dist/cjs/packages/ui/package.json.js +1 -1
  26. package/dist/esm/business/DataTable/DataTable.vue.mjs +6 -0
  27. package/dist/esm/business/EditFormCard/EditFormCard.vue.mjs +235 -0
  28. package/dist/esm/business/EditFormCard/EditFormCard.vue3.mjs +6 -0
  29. package/dist/esm/business/EditFormCard/index.mjs +7 -0
  30. package/dist/esm/business/FormDialog/FormDialog.vue.mjs +125 -0
  31. package/dist/esm/business/FormDialog/FormDialog.vue3.mjs +6 -0
  32. package/dist/esm/business/FormDialog/index.mjs +7 -0
  33. package/dist/esm/business/ProForm/ProForm.vue.mjs +46 -9
  34. package/dist/esm/business/SidebarMainLayout/SidebarMainLayout.vue.mjs +1 -0
  35. package/dist/esm/business/TreeCheckFilter/TreeCheckFilter.vue.mjs +1 -0
  36. package/dist/esm/business/TreeTransfer/TreeTransfer.vue.mjs +1 -0
  37. package/dist/esm/business/index.mjs +2 -0
  38. package/dist/esm/components/Button/DangerButton.vue.mjs +2 -2
  39. package/dist/esm/components/Cascader/Cascader.vue.mjs +3 -1
  40. package/dist/esm/components/CheckboxGroup/CheckboxGroup.vue.mjs +3 -1
  41. package/dist/esm/components/Dropdown/Dropdown.vue.mjs +3 -1
  42. package/dist/esm/components/LovText/LovText.vue.mjs +57 -0
  43. package/dist/esm/components/LovText/LovText.vue3.mjs +6 -0
  44. package/dist/esm/components/LovText/index.mjs +7 -0
  45. package/dist/esm/components/Radio/Radio.vue.mjs +3 -1
  46. package/dist/esm/components/Select/Select.vue.mjs +3 -1
  47. package/dist/esm/components/index.mjs +1 -0
  48. package/dist/esm/index.mjs +3 -0
  49. package/dist/esm/packages/ui/package.json.mjs +1 -1
  50. package/dist/style.css +14 -3
  51. package/dist/types/business/DataTable/DataTable.vue.d.ts +438 -1208
  52. package/dist/types/business/DataTable/index.d.ts +438 -1208
  53. package/dist/types/business/EditFormCard/EditFormCard.types.d.ts +1 -0
  54. package/dist/types/business/EditFormCard/EditFormCard.vue.d.ts +1169 -0
  55. package/dist/types/business/EditFormCard/index.d.ts +1569 -0
  56. package/dist/types/business/FormDialog/FormDialog.types.d.ts +1 -0
  57. package/dist/types/business/FormDialog/FormDialog.vue.d.ts +1006 -0
  58. package/dist/types/business/FormDialog/index.d.ts +1077 -0
  59. package/dist/types/business/ProForm/ProForm.types.d.ts +9 -0
  60. package/dist/types/business/ProForm/ProForm.vue.d.ts +37 -422
  61. package/dist/types/business/ProForm/index.d.ts +236 -1391
  62. package/dist/types/business/index.d.ts +2 -0
  63. package/dist/types/components/Cascader/Cascader.vue.d.ts +2 -0
  64. package/dist/types/components/Cascader/CascaderCheck.vue.d.ts +16 -2
  65. package/dist/types/components/Cascader/CascaderEnd.vue.d.ts +16 -2
  66. package/dist/types/components/Cascader/CascaderMultiple.vue.d.ts +16 -2
  67. package/dist/types/components/Cascader/index.d.ts +60 -3
  68. package/dist/types/components/CheckboxGroup/CheckboxGroup.vue.d.ts +2 -0
  69. package/dist/types/components/CheckboxGroup/index.d.ts +6 -0
  70. package/dist/types/components/DatePicker/BzDatePicker.vue.d.ts +9 -1
  71. package/dist/types/components/DatePicker/DatePicker.vue.d.ts +4 -0
  72. package/dist/types/components/DatePicker/DatePickerRanger.vue.d.ts +27 -3
  73. package/dist/types/components/DatePicker/DateTimePicker.vue.d.ts +26 -2
  74. package/dist/types/components/DatePicker/DateTimePickerRanger.vue.d.ts +27 -3
  75. package/dist/types/components/DatePicker/index.d.ts +126 -10
  76. package/dist/types/components/Dropdown/Dropdown.vue.d.ts +2 -0
  77. package/dist/types/components/Dropdown/index.d.ts +6 -0
  78. package/dist/types/components/LovText/LovText.types.d.ts +1 -0
  79. package/dist/types/components/LovText/LovText.vue.d.ts +13 -0
  80. package/dist/types/components/LovText/index.d.ts +45 -0
  81. package/dist/types/components/Menu/Menu.vue.d.ts +4 -0
  82. package/dist/types/components/Menu/index.d.ts +12 -0
  83. package/dist/types/components/Radio/Radio.vue.d.ts +2 -0
  84. package/dist/types/components/Radio/index.d.ts +6 -0
  85. package/dist/types/components/Select/Select.vue.d.ts +2 -0
  86. package/dist/types/components/Select/SelectAllowCreateSelect.vue.d.ts +12 -2
  87. package/dist/types/components/Select/SelectMultiple.vue.d.ts +12 -2
  88. package/dist/types/components/Select/index.d.ts +18 -2
  89. package/dist/types/components/Table/Table.vue.d.ts +6 -6
  90. package/dist/types/components/Text/Text.vue.d.ts +1 -81
  91. package/dist/types/components/Text/index.d.ts +3 -243
  92. package/dist/types/components/TimePicker/TimePicker.vue.d.ts +4 -0
  93. package/dist/types/components/TimePicker/index.d.ts +12 -0
  94. package/dist/types/components/TreeSelect/TreeSelect.vue.d.ts +2 -500
  95. package/dist/types/components/TreeSelect/index.d.ts +27 -1521
  96. package/dist/types/components/index.d.ts +1 -0
  97. package/package.json +6 -4
package/README.md CHANGED
@@ -167,6 +167,7 @@ const open = ref(false);
167
167
  | 102 | `FcTree` |
168
168
  | 103 | `FcTreeSelect` |
169
169
  | 104 | `FcUpload` |
170
+ | 105 | `FcLovText` |
170
171
 
171
172
  | 序号 | 组件名称 |
172
173
  | :---: | :--- |
@@ -175,3 +176,5 @@ const open = ref(false);
175
176
  | 3 | `FcSidebarMainLayout` |
176
177
  | 4 | `FcProTreeCheckFilter` |
177
178
  | 5 | `FcProTreeTransfer` |
179
+ | 6 | `FcProEditFormCard` |
180
+ | 7 | `FcProFormDialog` |
@@ -79,6 +79,7 @@ require('../../components/CollapseItem/index.js');
79
79
  require('../../components/ContextMenu/index.js');
80
80
  require('../../components/CodeEditor/index.js');
81
81
  require('../../components/RichEditor/index.js');
82
+ require('../../components/LovText/index.js');
82
83
  const ProForm_vue_vue_type_script_setup_true_lang = require('../ProForm/ProForm.vue.js');
83
84
  ;/* empty css */
84
85
  const core = require('@vueuse/core');
@@ -179,6 +180,11 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
179
180
  const { type, attrs = {} } = field;
180
181
  if (!type || type === "" || type.includes("Input")) {
181
182
  attrs.onClear = handleSearchClick;
183
+ attrs.onKeyup = (event) => {
184
+ if (event.key === "Enter") {
185
+ handleSearchClick();
186
+ }
187
+ };
182
188
  }
183
189
  if (type?.includes("Select") || type?.includes("Cascader") || type?.includes("DatePicker")) {
184
190
  attrs.onClear = handleSearchClick;
@@ -0,0 +1,239 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const vue = require('vue');
6
+ const index$1 = require('../../components/Button/index.js');
7
+ require('../../components/Dialog/index.js');
8
+ require('../../components/ConfigProvider/index.js');
9
+ require('../../components/Input/index.js');
10
+ require('../../components/Tree/index.js');
11
+ require('../../components/Tabs/index.js');
12
+ require('../../components/TabPane/index.js');
13
+ require('../../components/Steps/index.js');
14
+ require('../../components/Step/index.js');
15
+ require('../../components/InputNumber/index.js');
16
+ require('../../components/Select/index.js');
17
+ require('../../components/Option/index.js');
18
+ require('../../components/DatePicker/index.js');
19
+ require('../../components/DatePickerPanel/index.js');
20
+ require('../../components/Tooltip/index.js');
21
+ require('../../components/Icon/index.js');
22
+ const index$2 = require('../../components/Notification/index.js');
23
+ require('../../components/Link/index.js');
24
+ require('../../components/Text/index.js');
25
+ require('../../components/Scrollbar/index.js');
26
+ require('../../components/Splitter/index.js');
27
+ require('../../components/SplitterPanel/index.js');
28
+ require('../../components/Autocomplete/index.js');
29
+ require('../../components/Cascader/index.js');
30
+ require('../../components/CascaderPanel/index.js');
31
+ require('../../components/Checkbox/index.js');
32
+ require('../../components/CheckboxGroup/index.js');
33
+ require('../../components/CheckboxButton/index.js');
34
+ require('../../components/Form/index.js');
35
+ require('../../components/FormItem/index.js');
36
+ require('../../components/InputTag/index.js');
37
+ require('../../components/Radio/index.js');
38
+ require('../../components/RadioGroup/index.js');
39
+ require('../../components/SelectV2/index.js');
40
+ require('../../components/Switch/index.js');
41
+ require('../../components/TimePicker/index.js');
42
+ require('../../components/TimeSelect/index.js');
43
+ require('../../components/TreeSelect/index.js');
44
+ require('../../components/Upload/index.js');
45
+ require('../../components/Avatar/index.js');
46
+ require('../../components/AvatarGroup/index.js');
47
+ require('../../components/Badge/index.js');
48
+ const index = require('../../components/Card/index.js');
49
+ require('../../components/Descriptions/index.js');
50
+ require('../../components/DescriptionsItem/index.js');
51
+ require('../../components/Empty/index.js');
52
+ require('../../components/Image/index.js');
53
+ require('../../components/ImageViewer/index.js');
54
+ require('../../components/Pagination/index.js');
55
+ require('../../components/Table/index.js');
56
+ require('../../components/TableColumn/index.js');
57
+ require('../../components/TableV2/index.js');
58
+ require('../../components/Tag/index.js');
59
+ require('../../components/Breadcrumb/index.js');
60
+ require('../../components/BreadcrumbItem/index.js');
61
+ require('../../components/Drawer/index.js');
62
+ require('../../components/Popconfirm/index.js');
63
+ require('../../components/IconComponent/index.js');
64
+ require('../../components/Popover/index.js');
65
+ require('../../components/Result/index.js');
66
+ require('../../components/Progress/index.js');
67
+ require('../../components/Divider/index.js');
68
+ require('../../components/Dropdown/index.js');
69
+ require('../../components/DropdownMenu/index.js');
70
+ require('../../components/DropdownItem/index.js');
71
+ require('../../components/Menu/index.js');
72
+ require('../../components/SubMenu/index.js');
73
+ require('../../components/MenuItem/index.js');
74
+ require('../../components/RadioButton/index.js');
75
+ require('../../components/MenuItemGroup/index.js');
76
+ require('../../components/Collapse/index.js');
77
+ require('../../components/CollapseItem/index.js');
78
+ require('../../components/ContextMenu/index.js');
79
+ require('../../components/CodeEditor/index.js');
80
+ require('../../components/RichEditor/index.js');
81
+ require('../../components/LovText/index.js');
82
+ const ProForm_vue_vue_type_script_setup_true_lang = require('../ProForm/ProForm.vue.js');
83
+ ;/* empty css */
84
+ const cloneDeep = require('../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/cloneDeep.js');
85
+
86
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
87
+ ...{
88
+ name: "FcProEditFormCard",
89
+ inheritAttrs: false
90
+ },
91
+ __name: "EditFormCard",
92
+ props: {
93
+ title: { default: "" },
94
+ showEditButton: { type: Boolean, default: true },
95
+ requestApi: { type: Function, default: void 0 },
96
+ submitApi: { type: Function, default: void 0 },
97
+ inline: { type: Boolean, default: true },
98
+ columns: {},
99
+ labelPosition: { default: "top" },
100
+ labelWidth: {},
101
+ fields: { default: () => [] },
102
+ rules: { default: () => ({}) }
103
+ },
104
+ emits: ["submit", "loaded"],
105
+ setup(__props, { expose: __expose, emit: __emit }) {
106
+ const isDisabled = vue.ref(true);
107
+ const formRef = vue.ref();
108
+ const props = __props;
109
+ let snapshot = {};
110
+ const loading = vue.ref(false);
111
+ const submitting = vue.ref(false);
112
+ const initData = async () => {
113
+ if (!props.requestApi) return;
114
+ try {
115
+ loading.value = true;
116
+ const res = await props.requestApi();
117
+ const data = res.data || res || {};
118
+ emits("loaded", data);
119
+ if (formRef.value) {
120
+ formRef.value.setValues(data);
121
+ }
122
+ } catch (err) {
123
+ console.error("获取详情失败", err);
124
+ } finally {
125
+ loading.value = false;
126
+ }
127
+ };
128
+ vue.onMounted(initData);
129
+ const handleEditClick = () => {
130
+ isDisabled.value = false;
131
+ const model = formRef.value?.model;
132
+ snapshot = cloneDeep.default(model);
133
+ };
134
+ const handleCancelClick = () => {
135
+ formRef.value?.clearValidate();
136
+ isDisabled.value = true;
137
+ formRef.value?.setValues(snapshot);
138
+ };
139
+ const emits = __emit;
140
+ const handleSaveClick = async () => {
141
+ if (!formRef.value) return;
142
+ try {
143
+ await formRef.value.validate();
144
+ const model = formRef.value?.model;
145
+ if (!props.submitApi) {
146
+ isDisabled.value = true;
147
+ emits("submit", model);
148
+ return;
149
+ }
150
+ submitting.value = true;
151
+ const res = await props.submitApi(model);
152
+ isDisabled.value = true;
153
+ emits("submit", model, res);
154
+ index$2.FcNotification.success({
155
+ message: "修改成功!"
156
+ });
157
+ initData();
158
+ } catch (err) {
159
+ console.error("提交失败", err);
160
+ } finally {
161
+ submitting.value = false;
162
+ }
163
+ };
164
+ __expose(
165
+ new Proxy(
166
+ {},
167
+ {
168
+ get(_, key) {
169
+ if (key === "refresh") {
170
+ return initData;
171
+ }
172
+ return formRef.value?.[key];
173
+ },
174
+ has(_, key) {
175
+ if (key === "refresh") {
176
+ return true;
177
+ }
178
+ return key in formRef.value;
179
+ }
180
+ }
181
+ )
182
+ );
183
+ return (_ctx, _cache) => {
184
+ const _directive_loading = vue.resolveDirective("loading");
185
+ return vue.withDirectives((vue.openBlock(), vue.createBlock(vue.unref(index.FcCard), { title: __props.title }, vue.createSlots({
186
+ default: vue.withCtx(() => [
187
+ vue.createVNode(ProForm_vue_vue_type_script_setup_true_lang.default, {
188
+ ref_key: "formRef",
189
+ ref: formRef,
190
+ inline: __props.inline,
191
+ "label-position": __props.labelPosition,
192
+ fields: __props.fields,
193
+ disabled: isDisabled.value,
194
+ rules: __props.rules
195
+ }, null, 8, ["inline", "label-position", "fields", "disabled", "rules"])
196
+ ]),
197
+ _: 2
198
+ }, [
199
+ __props.showEditButton ? {
200
+ name: "tools",
201
+ fn: vue.withCtx(() => [
202
+ isDisabled.value ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.FcButton), {
203
+ key: 0,
204
+ type: "primary",
205
+ onClick: handleEditClick
206
+ }, {
207
+ default: vue.withCtx(() => [..._cache[0] || (_cache[0] = [
208
+ vue.createTextVNode("编辑", -1)
209
+ ])]),
210
+ _: 1
211
+ })) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
212
+ vue.createVNode(vue.unref(index$1.FcButton), { onClick: handleCancelClick }, {
213
+ default: vue.withCtx(() => [..._cache[1] || (_cache[1] = [
214
+ vue.createTextVNode("取消", -1)
215
+ ])]),
216
+ _: 1
217
+ }),
218
+ vue.createVNode(vue.unref(index$1.FcButton), {
219
+ type: "success",
220
+ loading: submitting.value,
221
+ onClick: handleSaveClick
222
+ }, {
223
+ default: vue.withCtx(() => [..._cache[2] || (_cache[2] = [
224
+ vue.createTextVNode("保存", -1)
225
+ ])]),
226
+ _: 1
227
+ }, 8, ["loading"])
228
+ ], 64))
229
+ ]),
230
+ key: "0"
231
+ } : void 0
232
+ ]), 1032, ["title"])), [
233
+ [_directive_loading, loading.value]
234
+ ]);
235
+ };
236
+ }
237
+ });
238
+
239
+ exports.default = _sfc_main;
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const EditFormCard_vue_vue_type_script_setup_true_lang = require('./EditFormCard.vue.js');
6
+ ;/* empty css */
7
+
8
+
9
+
10
+ exports.default = EditFormCard_vue_vue_type_script_setup_true_lang.default;
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const EditFormCard_vue_vue_type_script_setup_true_lang = require('./EditFormCard.vue.js');
6
+ ;/* empty css */
7
+ const withInstall = require('../../_utils/with-install.js');
8
+
9
+ const FcProEditFormCard = withInstall.withInstall(EditFormCard_vue_vue_type_script_setup_true_lang.default);
10
+
11
+ exports.FcProEditFormCard = FcProEditFormCard;
12
+ exports.default = FcProEditFormCard;
@@ -0,0 +1,129 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const vue = require('vue');
6
+ const Button_vue_vue_type_script_setup_true_lang = require('../../components/Button/Button.vue.js');
7
+ ;/* empty css */
8
+ const Dialog_vue_vue_type_script_setup_true_lang = require('../../components/Dialog/Dialog.vue.js');
9
+ ;/* empty css */
10
+ const ProForm_vue_vue_type_script_setup_true_lang = require('../ProForm/ProForm.vue.js');
11
+ ;/* empty css */
12
+ const index = require('../../components/Notification/index.js');
13
+ const useNamespace = require('../../hooks/use-namespace.js');
14
+
15
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
16
+ ...{
17
+ name: "FcProFormDialog",
18
+ inheritAttrs: false
19
+ },
20
+ __name: "FormDialog",
21
+ props: {
22
+ title: { default: "新增" },
23
+ width: { default: 400 },
24
+ cancelButtonText: { default: "取消" },
25
+ confirmButtonText: { default: "确定" },
26
+ showCancelButton: { type: Boolean, default: true },
27
+ submitApi: { type: Function, default: void 0 },
28
+ inline: { type: Boolean, default: false },
29
+ columns: {},
30
+ labelPosition: { default: "left" },
31
+ labelWidth: { default: "5em" },
32
+ fields: { default: () => [] },
33
+ rules: { default: () => ({}) }
34
+ },
35
+ emits: ["submit", "cancel"],
36
+ setup(__props, { expose: __expose, emit: __emit }) {
37
+ const ns = useNamespace.useNamespace("form-dialog");
38
+ const formRef = vue.ref();
39
+ const props = __props;
40
+ const visible = vue.ref(false);
41
+ const emits = __emit;
42
+ const submitting = vue.ref(false);
43
+ const handleConfirmClick = async () => {
44
+ if (!formRef.value) return;
45
+ try {
46
+ await formRef.value.validate();
47
+ const model = formRef.value?.model;
48
+ if (!props.submitApi) {
49
+ emits("submit", model);
50
+ visible.value = false;
51
+ return;
52
+ }
53
+ submitting.value = true;
54
+ const res = await props.submitApi(model);
55
+ emits("submit", model, res);
56
+ index.FcNotification.success({
57
+ message: "提交成功!"
58
+ });
59
+ visible.value = false;
60
+ } catch (err) {
61
+ console.error("提交失败", err);
62
+ } finally {
63
+ submitting.value = false;
64
+ }
65
+ };
66
+ const open = (data) => {
67
+ visible.value = true;
68
+ vue.nextTick(() => {
69
+ formRef.value?.setValues(data || {});
70
+ });
71
+ };
72
+ const handleCancelClick = () => {
73
+ visible.value = false;
74
+ emits("cancel");
75
+ };
76
+ const close = () => {
77
+ visible.value = false;
78
+ };
79
+ __expose({
80
+ open,
81
+ close
82
+ });
83
+ return (_ctx, _cache) => {
84
+ return vue.openBlock(), vue.createBlock(Dialog_vue_vue_type_script_setup_true_lang.default, {
85
+ modelValue: visible.value,
86
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => visible.value = $event),
87
+ title: __props.title,
88
+ width: __props.width,
89
+ "body-class": vue.unref(ns).e("body")
90
+ }, {
91
+ footer: vue.withCtx(() => [
92
+ __props.showCancelButton ? (vue.openBlock(), vue.createBlock(Button_vue_vue_type_script_setup_true_lang.default, {
93
+ key: 0,
94
+ onClick: handleCancelClick
95
+ }, {
96
+ default: vue.withCtx(() => [
97
+ vue.createTextVNode(vue.toDisplayString(__props.cancelButtonText), 1)
98
+ ]),
99
+ _: 1
100
+ })) : vue.createCommentVNode("", true),
101
+ vue.createVNode(Button_vue_vue_type_script_setup_true_lang.default, {
102
+ type: "primary",
103
+ loading: submitting.value,
104
+ onClick: handleConfirmClick
105
+ }, {
106
+ default: vue.withCtx(() => [
107
+ vue.createTextVNode(vue.toDisplayString(__props.confirmButtonText), 1)
108
+ ]),
109
+ _: 1
110
+ }, 8, ["loading"])
111
+ ]),
112
+ default: vue.withCtx(() => [
113
+ vue.createVNode(ProForm_vue_vue_type_script_setup_true_lang.default, vue.mergeProps({
114
+ ref_key: "formRef",
115
+ ref: formRef,
116
+ inline: __props.inline,
117
+ "label-position": __props.labelPosition,
118
+ "label-width": __props.labelWidth,
119
+ fields: __props.fields,
120
+ rules: __props.rules
121
+ }, _ctx.$attrs), null, 16, ["inline", "label-position", "label-width", "fields", "rules"])
122
+ ]),
123
+ _: 1
124
+ }, 8, ["modelValue", "title", "width", "body-class"]);
125
+ };
126
+ }
127
+ });
128
+
129
+ exports.default = _sfc_main;
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const FormDialog_vue_vue_type_script_setup_true_lang = require('./FormDialog.vue.js');
6
+ ;/* empty css */
7
+
8
+
9
+
10
+ exports.default = FormDialog_vue_vue_type_script_setup_true_lang.default;
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const FormDialog_vue_vue_type_script_setup_true_lang = require('./FormDialog.vue.js');
6
+ ;/* empty css */
7
+ const withInstall = require('../../_utils/with-install.js');
8
+
9
+ const FcProFormDialog = withInstall.withInstall(FormDialog_vue_vue_type_script_setup_true_lang.default);
10
+
11
+ exports.FcProFormDialog = FcProFormDialog;
12
+ exports.default = FcProFormDialog;
@@ -18,7 +18,7 @@ require('../../components/Select/index.js');
18
18
  require('../../components/Option/index.js');
19
19
  require('../../components/DatePicker/index.js');
20
20
  require('../../components/DatePickerPanel/index.js');
21
- require('../../components/Tooltip/index.js');
21
+ const index$2 = require('../../components/Tooltip/index.js');
22
22
  require('../../components/Icon/index.js');
23
23
  require('../../components/Notification/index.js');
24
24
  require('../../components/Link/index.js');
@@ -61,7 +61,7 @@ require('../../components/Breadcrumb/index.js');
61
61
  require('../../components/BreadcrumbItem/index.js');
62
62
  require('../../components/Drawer/index.js');
63
63
  require('../../components/Popconfirm/index.js');
64
- require('../../components/IconComponent/index.js');
64
+ const index$3 = require('../../components/IconComponent/index.js');
65
65
  require('../../components/Popover/index.js');
66
66
  require('../../components/Result/index.js');
67
67
  require('../../components/Progress/index.js');
@@ -79,7 +79,10 @@ require('../../components/CollapseItem/index.js');
79
79
  require('../../components/ContextMenu/index.js');
80
80
  require('../../components/CodeEditor/index.js');
81
81
  require('../../components/RichEditor/index.js');
82
+ require('../../components/LovText/index.js');
82
83
  const componentsMap = require('./componentsMap.js');
84
+ const isPlainObject = require('../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isPlainObject.js');
85
+ const cloneDeep = require('../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/cloneDeep.js');
83
86
 
84
87
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
85
88
  ...{
@@ -88,14 +91,21 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
88
91
  __name: "ProForm",
89
92
  props: {
90
93
  inline: { type: Boolean, default: false },
94
+ columns: { default: "auto-fill" },
91
95
  labelPosition: { default: "top" },
92
- fields: { default: () => [] }
96
+ labelWidth: { default: "" },
97
+ fields: { default: () => [] },
98
+ rules: { default: () => ({}) }
93
99
  },
94
100
  setup(__props, { expose: __expose }) {
95
101
  const ns = useNamespace.useNamespace("pro-form");
96
102
  const formModel = vue.ref({});
97
103
  const setValues = (data) => {
98
- formModel.value = Object.assign({}, formModel.value, data);
104
+ if (isPlainObject.default(data)) {
105
+ formModel.value = cloneDeep.default(data || {});
106
+ } else {
107
+ console.warn("setValues 只能接受一个对象");
108
+ }
99
109
  };
100
110
  const getGridItemStyle = (item) => {
101
111
  if (item.span === "full") {
@@ -151,7 +161,10 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
151
161
  model: formModel.value,
152
162
  class: { [vue.unref(ns).e("container")]: true, [vue.unref(ns).is("inline")]: __props.inline },
153
163
  inline: __props.inline,
154
- "label-position": __props.labelPosition
164
+ "label-position": __props.labelPosition,
165
+ "label-width": __props.labelWidth,
166
+ style: { "--grid-columns": __props.columns },
167
+ rules: __props.rules
155
168
  }), {
156
169
  default: vue.withCtx(() => [
157
170
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.fields, (item) => {
@@ -160,7 +173,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
160
173
  label: item.label,
161
174
  prop: item.prop,
162
175
  style: vue.normalizeStyle(getGridItemStyle(item))
163
- }, {
176
+ }, vue.createSlots({
164
177
  default: vue.withCtx(() => [
165
178
  item.render ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(item.render(formModel.value, item.prop, item.label)), vue.mergeProps({
166
179
  key: 0,
@@ -183,11 +196,35 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
183
196
  }), null, 16, ["modelValue", "onUpdate:modelValue", "placeholder"]))
184
197
  ]),
185
198
  _: 2
186
- }, 1032, ["label", "prop", "style"]);
199
+ }, [
200
+ item.tooltip ? {
201
+ name: "label",
202
+ fn: vue.withCtx(() => [
203
+ vue.createElementVNode("div", {
204
+ class: vue.normalizeClass(vue.unref(ns).e("label-with-tooltip"))
205
+ }, [
206
+ vue.createElementVNode("span", null, vue.toDisplayString(item.label), 1),
207
+ vue.createVNode(vue.unref(index$2.FcTooltip), {
208
+ content: item.tooltip,
209
+ placement: "top"
210
+ }, {
211
+ default: vue.withCtx(() => [
212
+ vue.createVNode(vue.unref(index$3.FcIconComponent), {
213
+ name: "QuestionFilled",
214
+ size: 14
215
+ })
216
+ ]),
217
+ _: 1
218
+ }, 8, ["content"])
219
+ ], 2)
220
+ ]),
221
+ key: "0"
222
+ } : void 0
223
+ ]), 1032, ["label", "prop", "style"]);
187
224
  }), 128))
188
225
  ]),
189
226
  _: 1
190
- }, 16, ["model", "class", "inline", "label-position"]);
227
+ }, 16, ["model", "class", "inline", "label-position", "label-width", "style", "rules"]);
191
228
  };
192
229
  }
193
230
  });
@@ -79,6 +79,7 @@ require('../../components/CollapseItem/index.js');
79
79
  require('../../components/ContextMenu/index.js');
80
80
  require('../../components/CodeEditor/index.js');
81
81
  require('../../components/RichEditor/index.js');
82
+ require('../../components/LovText/index.js');
82
83
  const useNamespace = require('../../hooks/use-namespace.js');
83
84
 
84
85
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
@@ -79,6 +79,7 @@ require('../../components/CollapseItem/index.js');
79
79
  require('../../components/ContextMenu/index.js');
80
80
  require('../../components/CodeEditor/index.js');
81
81
  require('../../components/RichEditor/index.js');
82
+ require('../../components/LovText/index.js');
82
83
  const Icons = require('@funcho/icons-vue');
83
84
  const core = require('@vueuse/core');
84
85
 
@@ -81,6 +81,7 @@ require('../../components/CollapseItem/index.js');
81
81
  require('../../components/ContextMenu/index.js');
82
82
  require('../../components/CodeEditor/index.js');
83
83
  require('../../components/RichEditor/index.js');
84
+ require('../../components/LovText/index.js');
84
85
 
85
86
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
86
87
  ...{
@@ -7,6 +7,8 @@ const index$1 = require('./DataTable/index.js');
7
7
  const index$2 = require('./ProForm/index.js');
8
8
  const index$3 = require('./TreeCheckFilter/index.js');
9
9
  const index$4 = require('./TreeTransfer/index.js');
10
+ const index$5 = require('./EditFormCard/index.js');
11
+ const index$6 = require('./FormDialog/index.js');
10
12
 
11
13
 
12
14
 
@@ -15,3 +17,5 @@ exports.FcProDataTable = index$1.FcProDataTable;
15
17
  exports.FcProForm = index$2.FcProForm;
16
18
  exports.FcProTreeCheckFilter = index$3.FcProTreeCheckFilter;
17
19
  exports.FcProTreeTransfer = index$4.FcProTreeTransfer;
20
+ exports.FcProEditFormCard = index$5.FcProEditFormCard;
21
+ exports.FcProFormDialog = index$6.FcProFormDialog;
@@ -42,7 +42,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
42
42
  vue.createVNode(Button_vue_vue_type_script_setup_true_lang.default, vue.mergeProps(_ctx.$attrs, {
43
43
  ref: "elRef",
44
44
  type: "danger",
45
- link: ""
45
+ link: __props.link
46
46
  }), vue.createSlots({ _: 2 }, [
47
47
  vue.renderList(_ctx.$slots, (_, name) => {
48
48
  return {
@@ -52,7 +52,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
52
52
  ])
53
53
  };
54
54
  })
55
- ]), 1040)
55
+ ]), 1040, ["link"])
56
56
  ]),
57
57
  _: 3
58
58
  }, 8, ["title"])
@@ -20,6 +20,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
20
20
  filterable: { type: Boolean, default: true },
21
21
  collapseTags: { type: Boolean, default: true },
22
22
  collapseTagsTooltip: { type: Boolean, default: true },
23
+ isSql: { type: Boolean, default: false },
23
24
  tagType: { default: "primary" }
24
25
  },
25
26
  setup(__props, { expose: __expose }) {
@@ -34,7 +35,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
34
35
  try {
35
36
  const context = {
36
37
  lovId: props.lovId,
37
- isUpdateLovOptions: props.isUpdateLovOptions
38
+ isUpdateLovOptions: props.isUpdateLovOptions,
39
+ isSql: props.isSql
38
40
  };
39
41
  lovIdOptions.value = await config.requestHandler(context);
40
42
  } catch (error) {
@@ -17,6 +17,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
17
17
  __name: "CheckboxGroup",
18
18
  props: /* @__PURE__ */ vue.mergeModels({
19
19
  lovId: { default: "" },
20
+ isSql: { type: Boolean, default: false },
20
21
  isUpdateLovOptions: { type: Boolean, default: false },
21
22
  hasIndeterminate: { type: Boolean, default: false },
22
23
  options: { default: () => [] },
@@ -51,7 +52,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
51
52
  try {
52
53
  const context = {
53
54
  lovId: myProps.lovId,
54
- isUpdateLovOptions: myProps.isUpdateLovOptions
55
+ isUpdateLovOptions: myProps.isUpdateLovOptions,
56
+ isSql: myProps.isSql
55
57
  };
56
58
  lovIdOptions.value = await config.requestHandler(context);
57
59
  } catch (error) {