@antdv-next1/pro-field 1.0.0

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 (102) hide show
  1. package/LICENSE +21 -0
  2. package/dist/FieldHOC/index.d.ts +16 -0
  3. package/dist/FieldHOC/index.js +51 -0
  4. package/dist/ProField.d.ts +18 -0
  5. package/dist/ProField.js +417 -0
  6. package/dist/ProPureField.d.ts +10 -0
  7. package/dist/ProPureField.js +222 -0
  8. package/dist/ValueTypeToComponent.d.ts +6 -0
  9. package/dist/ValueTypeToComponent.js +442 -0
  10. package/dist/components/Cascader/index.d.ts +40 -0
  11. package/dist/components/Cascader/index.js +202 -0
  12. package/dist/components/Checkbox/index.d.ts +37 -0
  13. package/dist/components/Checkbox/index.js +149 -0
  14. package/dist/components/Checkbox/style/index.d.ts +11 -0
  15. package/dist/components/Checkbox/style/index.js +26 -0
  16. package/dist/components/Code/index.d.ts +34 -0
  17. package/dist/components/Code/index.js +125 -0
  18. package/dist/components/ColorPicker/index.d.ts +22 -0
  19. package/dist/components/ColorPicker/index.js +278 -0
  20. package/dist/components/DatePicker/index.d.ts +27 -0
  21. package/dist/components/DatePicker/index.js +171 -0
  22. package/dist/components/Digit/index.d.ts +27 -0
  23. package/dist/components/Digit/index.js +159 -0
  24. package/dist/components/DigitRange/index.d.ts +48 -0
  25. package/dist/components/DigitRange/index.js +197 -0
  26. package/dist/components/FromNow/index.d.ts +23 -0
  27. package/dist/components/FromNow/index.js +123 -0
  28. package/dist/components/Image/index.d.ts +23 -0
  29. package/dist/components/Image/index.js +119 -0
  30. package/dist/components/IndexColumn/index.d.ts +13 -0
  31. package/dist/components/IndexColumn/index.js +30 -0
  32. package/dist/components/IndexColumn/style/index.d.ts +11 -0
  33. package/dist/components/IndexColumn/style/index.js +29 -0
  34. package/dist/components/Money/InputNumberPopover.d.ts +120 -0
  35. package/dist/components/Money/InputNumberPopover.js +345 -0
  36. package/dist/components/Money/index.d.ts +303 -0
  37. package/dist/components/Money/index.js +274 -0
  38. package/dist/components/Options/index.d.ts +18 -0
  39. package/dist/components/Options/index.js +120 -0
  40. package/dist/components/Password/index.d.ts +33 -0
  41. package/dist/components/Password/index.js +137 -0
  42. package/dist/components/Percent/index.d.ts +45 -0
  43. package/dist/components/Percent/index.js +171 -0
  44. package/dist/components/Percent/util.d.ts +10 -0
  45. package/dist/components/Percent/util.js +22 -0
  46. package/dist/components/Progress/index.d.ts +22 -0
  47. package/dist/components/Progress/index.js +124 -0
  48. package/dist/components/Radio/index.d.ts +36 -0
  49. package/dist/components/Radio/index.js +138 -0
  50. package/dist/components/Radio/style/index.d.ts +11 -0
  51. package/dist/components/Radio/style/index.js +21 -0
  52. package/dist/components/RangePicker/DatePicker.d.ts +29 -0
  53. package/dist/components/RangePicker/DatePicker.js +189 -0
  54. package/dist/components/RangePicker/TimePicker.d.ts +25 -0
  55. package/dist/components/RangePicker/TimePicker.js +177 -0
  56. package/dist/components/RangePicker/index.d.ts +3 -0
  57. package/dist/components/RangePicker/index.js +3 -0
  58. package/dist/components/Rate/index.d.ts +19 -0
  59. package/dist/components/Rate/index.js +98 -0
  60. package/dist/components/Second/index.d.ts +28 -0
  61. package/dist/components/Second/index.js +151 -0
  62. package/dist/components/Segmented/index.d.ts +36 -0
  63. package/dist/components/Segmented/index.js +138 -0
  64. package/dist/components/Select/Highlight/index.d.ts +14 -0
  65. package/dist/components/Select/Highlight/index.js +46 -0
  66. package/dist/components/Select/Highlight/style/index.d.ts +12 -0
  67. package/dist/components/Select/Highlight/style/index.js +24 -0
  68. package/dist/components/Select/LightSelect/index.d.ts +45 -0
  69. package/dist/components/Select/LightSelect/index.js +621 -0
  70. package/dist/components/Select/LightSelect/style/index.d.ts +11 -0
  71. package/dist/components/Select/LightSelect/style/index.js +28 -0
  72. package/dist/components/Select/SearchSelect/index.d.ts +78 -0
  73. package/dist/components/Select/SearchSelect/index.js +273 -0
  74. package/dist/components/Select/index.d.ts +67 -0
  75. package/dist/components/Select/index.js +357 -0
  76. package/dist/components/Slider/index.d.ts +18 -0
  77. package/dist/components/Slider/index.js +99 -0
  78. package/dist/components/Status/index.d.ts +31 -0
  79. package/dist/components/Status/index.js +71 -0
  80. package/dist/components/Switch/index.d.ts +31 -0
  81. package/dist/components/Switch/index.js +132 -0
  82. package/dist/components/Text/index.d.ts +37 -0
  83. package/dist/components/Text/index.js +146 -0
  84. package/dist/components/TextArea/index.d.ts +25 -0
  85. package/dist/components/TextArea/index.js +117 -0
  86. package/dist/components/TextArea/readonly/index.d.ts +17 -0
  87. package/dist/components/TextArea/readonly/index.js +20 -0
  88. package/dist/components/TextArea/readonly/style/index.d.ts +11 -0
  89. package/dist/components/TextArea/readonly/style/index.js +20 -0
  90. package/dist/components/TimePicker/index.d.ts +23 -0
  91. package/dist/components/TimePicker/index.js +153 -0
  92. package/dist/components/TreeSelect/index.d.ts +45 -0
  93. package/dist/components/TreeSelect/index.js +762 -0
  94. package/dist/index.d.ts +34 -0
  95. package/dist/index.js +33 -0
  96. package/dist/pro-field.esm.js +72945 -0
  97. package/dist/pro-field.js +214 -0
  98. package/dist/typing.d.ts +28 -0
  99. package/dist/typing.js +1 -0
  100. package/dist/utils/useFieldExpose.d.ts +7 -0
  101. package/dist/utils/useFieldExpose.js +9 -0
  102. package/package.json +63 -0
@@ -0,0 +1,357 @@
1
+ import Highlight from "./Highlight/index.js";
2
+ import LightSelect from "./LightSelect/index.js";
3
+ import SearchSelect from "./SearchSelect/index.js";
4
+ import { Fragment, computed, createVNode, defineComponent, mergeProps, ref, shallowRef } from "vue";
5
+ import { useIntl } from "@antdv-next1/pro-provider";
6
+ import { nanoid, objectToMap, proFieldParsingText, useDebounceValue, useEffect, useMemo, useMountMergeState, useRefFunction, useState } from "@antdv-next1/pro-utils";
7
+ import { Spin, useConfig } from "antdv-next";
8
+ import { unit } from "@antdv-next/cssinjs";
9
+ import useSWRV from "swrv";
10
+ //#region src/components/Select/index.tsx
11
+ /**
12
+ * 递归筛选 item
13
+ */
14
+ function filerByItem(item, keyWords) {
15
+ if (!keyWords) return true;
16
+ if (item?.label?.toString().toLowerCase().includes(keyWords.toLowerCase()) || item?.value?.toString().toLowerCase().includes(keyWords.toLowerCase())) return true;
17
+ if (item.children || item.options) {
18
+ if ([...item.children || [], item.options || []].find((mapItem) => {
19
+ return filerByItem(mapItem, keyWords);
20
+ })) return true;
21
+ }
22
+ return false;
23
+ }
24
+ /**
25
+ * 把 value 的枚举转化为数组
26
+ *
27
+ * @param valueEnumParams
28
+ */
29
+ function proFieldParsingValueEnumToArray(valueEnumParams) {
30
+ const enumArray = [];
31
+ const valueEnum = objectToMap(valueEnumParams);
32
+ valueEnum.forEach((_, key) => {
33
+ const value = valueEnum.get(key) || valueEnum.get(`${key}`);
34
+ if (!value) return;
35
+ if (typeof value === "object" && value?.text) {
36
+ enumArray.push({
37
+ text: value.text,
38
+ value: key,
39
+ label: value?.text,
40
+ disabled: value.disabled
41
+ });
42
+ return;
43
+ }
44
+ enumArray.push({
45
+ text: value,
46
+ value: key
47
+ });
48
+ });
49
+ return enumArray;
50
+ }
51
+ function useFieldFetchData(props) {
52
+ const { request, debounceTime, defaultKeyWords, valueEnum, fieldProps, proFieldKey } = props;
53
+ const [keyWords, setKeyWords] = useState(defaultKeyWords);
54
+ /** Key 是用来缓存请求的,如果不在是有问题 */
55
+ const [cacheKey] = useState(() => {
56
+ if (proFieldKey) return proFieldKey.toString();
57
+ if (request) return nanoid();
58
+ return "no-fetch";
59
+ });
60
+ const proFieldKeyRef = ref(cacheKey.value);
61
+ const getOptionsFormValueEnum = useRefFunction((coverValueEnum) => proFieldParsingValueEnumToArray(objectToMap(coverValueEnum)).map(({ value, text, ...rest }) => ({
62
+ label: text,
63
+ value,
64
+ key: value,
65
+ ...rest
66
+ })));
67
+ const [options, setOptions] = useMountMergeState(() => {
68
+ if (valueEnum) return getOptionsFormValueEnum(valueEnum);
69
+ return [];
70
+ }, { value: computed(() => {
71
+ if (!fieldProps) return void 0;
72
+ const data = fieldProps?.options || fieldProps?.treeData;
73
+ if (!data) return void 0;
74
+ const { children, label, value } = fieldProps?.fieldNames || {};
75
+ const traverseFieldKey = (_options, type) => {
76
+ if (!_options?.length) return;
77
+ const length = _options.length;
78
+ let i = 0;
79
+ while (i < length) {
80
+ const cur = _options[i++];
81
+ if (cur[children] || cur[label] || cur[value]) {
82
+ cur[type] = cur[type === "children" ? children : type === "label" ? label : value];
83
+ traverseFieldKey(cur[children], type);
84
+ }
85
+ }
86
+ };
87
+ if (children) traverseFieldKey(data, "children");
88
+ if (label) traverseFieldKey(data, "label");
89
+ if (value) traverseFieldKey(data, "value");
90
+ return data;
91
+ }) });
92
+ useEffect(() => {
93
+ if (!valueEnum || fieldProps?.options || fieldProps?.treeData) return;
94
+ setOptions(getOptionsFormValueEnum(valueEnum));
95
+ }, [() => valueEnum]);
96
+ const swrKey = useDebounceValue([
97
+ proFieldKeyRef.value,
98
+ props.params,
99
+ keyWords.value
100
+ ], debounceTime ?? fieldProps?.debounceTime ?? 0, [() => props.params, keyWords]);
101
+ const { data, mutate: setLocaleData, isValidating } = useSWRV(() => {
102
+ if (!request) return null;
103
+ return swrKey.value;
104
+ }, ([, params, kw]) => request?.({
105
+ ...params,
106
+ keyWords: kw
107
+ }, props), {
108
+ shouldRetryOnError: false,
109
+ revalidateOnFocus: false
110
+ });
111
+ const resOptions = useMemo(() => {
112
+ const opt = options.value?.map((item) => {
113
+ if (typeof item === "string") return {
114
+ label: item,
115
+ value: item
116
+ };
117
+ if (item.children || item.options) {
118
+ const childrenOptions = [...item.children || [], ...item.options || []].filter((mapItem) => {
119
+ return filerByItem(mapItem, keyWords.value);
120
+ });
121
+ return {
122
+ ...item,
123
+ children: childrenOptions,
124
+ options: childrenOptions
125
+ };
126
+ }
127
+ return item;
128
+ });
129
+ if (props.fieldProps?.filterOption === true || props.fieldProps?.filterOption === void 0) return opt?.filter((item) => {
130
+ if (!item) return false;
131
+ if (!keyWords.value) return true;
132
+ return filerByItem(item, keyWords.value);
133
+ });
134
+ return opt;
135
+ }, [
136
+ options,
137
+ keyWords,
138
+ () => fieldProps?.filterOption
139
+ ]);
140
+ return [
141
+ isValidating,
142
+ request ? data : resOptions,
143
+ (fetchKeyWords) => setKeyWords(fetchKeyWords),
144
+ async () => {
145
+ setKeyWords(void 0);
146
+ await setLocaleData(() => [], { shouldRetryOnError: false });
147
+ }
148
+ ];
149
+ }
150
+ const FieldSelect = /* @__PURE__ */ defineComponent((props, { attrs, expose }) => {
151
+ const { componentSize } = useConfig();
152
+ const selectRef = shallowRef(null);
153
+ const intl = useIntl();
154
+ const keyWordsRef = shallowRef("");
155
+ useEffect(() => {
156
+ if (props.fieldProps?.showSearch && typeof props.fieldProps?.showSearch !== "boolean") keyWordsRef.value = props.fieldProps?.showSearch.searchValue;
157
+ }, [() => props.fieldProps?.showSearch]);
158
+ const [loading, options, fetchData, resetData] = useFieldFetchData(props);
159
+ const optionsValueEnum = useMemo(() => {
160
+ if (props.mode !== "read") return;
161
+ const { label: labelPropsName = "label", value: valuePropsName = "value", options: optionsPropsName = "options" } = props.fieldProps?.fieldNames || {};
162
+ const valueEnumObj = {};
163
+ const traverseOptions = (_options) => {
164
+ if (!_options?.length) return valueEnumObj;
165
+ const length = _options.length;
166
+ let i = 0;
167
+ while (i < length) {
168
+ const cur = _options[i++];
169
+ valueEnumObj[cur[valuePropsName]] = {
170
+ text: cur.text || cur[labelPropsName],
171
+ status: cur.status,
172
+ color: cur.color,
173
+ disabled: cur.disabled
174
+ };
175
+ traverseOptions(cur[optionsPropsName]);
176
+ }
177
+ return valueEnumObj;
178
+ };
179
+ return traverseOptions(options.value);
180
+ }, [
181
+ () => props.fieldProps?.fieldNames,
182
+ () => props.mode,
183
+ options
184
+ ]);
185
+ expose({
186
+ focus: () => selectRef.value?.focus(),
187
+ blur: () => selectRef.value?.blur(),
188
+ scrollTo: (arg) => selectRef.value?.scrollTo(arg),
189
+ fetchData: (keyWord) => fetchData(keyWord)
190
+ });
191
+ return () => {
192
+ const { mode, render, formItemRender, request, params, variant, id, fieldNames, defaultKeyWords, debounceTime, lightLabel, labelTrigger, light, ...rest } = props;
193
+ if (mode === "read") {
194
+ const dom = createVNode(Fragment, null, [proFieldParsingText(rest.text, objectToMap(rest.valueEnum || optionsValueEnum.value))]);
195
+ if (render) return createVNode(Fragment, null, [render(dom, {
196
+ mode,
197
+ ...rest,
198
+ light
199
+ }, dom) ?? null]);
200
+ return dom;
201
+ }
202
+ if (mode === "edit" || mode === "update") {
203
+ const dom = light ? createVNode(LightSelect, mergeProps({
204
+ "labelVariant": variant,
205
+ "id": id,
206
+ "loading": loading.value,
207
+ "allowClear": true,
208
+ "size": componentSize?.value || "middle",
209
+ "label": rest.label,
210
+ "placeholder": intl.value.getMessage({
211
+ id: "tableForm.selectPlaceholder",
212
+ defaultMessage: "请选择"
213
+ }),
214
+ "searchPlaceholder": intl.value.getMessage({
215
+ id: "tableForm.inputPlaceholder",
216
+ defaultMessage: "请输入"
217
+ }),
218
+ "lightLabel": lightLabel,
219
+ "labelTrigger": labelTrigger,
220
+ "fetchData": fetchData
221
+ }, rest.fieldProps, { "options": options.value }), null) : createVNode(SearchSelect, mergeProps(attrs, {
222
+ "key": "SearchSelect",
223
+ "style": rest.fieldProps?.style || {
224
+ minWidth: unit(100),
225
+ ...attrs.style
226
+ },
227
+ "id": id,
228
+ "loading": loading.value,
229
+ "ref": selectRef,
230
+ "allowClear": true,
231
+ "defaultSearchValue": props.defaultKeyWords,
232
+ "notFoundContent": loading.value ? createVNode(Spin, { "size": "small" }, null) : rest.fieldProps?.notFoundContent,
233
+ "fetchData": (keyWord) => {
234
+ keyWordsRef.value = keyWord ?? "";
235
+ fetchData(keyWord);
236
+ },
237
+ "resetData": resetData,
238
+ "preserveOriginalLabel": true,
239
+ "optionItemRender": (item) => {
240
+ if (typeof item.label === "string" && keyWordsRef.value) return createVNode(Highlight, {
241
+ "label": item.label,
242
+ "words": [keyWordsRef.value]
243
+ }, null);
244
+ return item.label;
245
+ },
246
+ "placeholder": intl.value.getMessage({
247
+ id: "tableForm.selectPlaceholder",
248
+ defaultMessage: "请选择"
249
+ })
250
+ }, rest.fieldProps, { "options": options.value }), null);
251
+ if (formItemRender) return createVNode(Fragment, null, [formItemRender(rest.text, {
252
+ mode,
253
+ ...rest,
254
+ options: options.value,
255
+ loading: loading.value
256
+ }, dom)]);
257
+ return dom;
258
+ }
259
+ return null;
260
+ };
261
+ }, {
262
+ props: {
263
+ text: {
264
+ type: [
265
+ Object,
266
+ Function,
267
+ String,
268
+ Number,
269
+ null,
270
+ Boolean,
271
+ Array
272
+ ],
273
+ required: false,
274
+ default: void 0
275
+ },
276
+ valueEnum: {
277
+ type: [Map, Object],
278
+ required: false
279
+ },
280
+ debounceTime: {
281
+ type: Number,
282
+ required: false
283
+ },
284
+ request: {
285
+ type: Function,
286
+ required: false
287
+ },
288
+ params: { required: false },
289
+ fieldProps: {
290
+ type: Object,
291
+ required: false
292
+ },
293
+ variant: {
294
+ type: String,
295
+ required: false
296
+ },
297
+ id: {
298
+ type: String,
299
+ required: false
300
+ },
301
+ defaultKeyWords: {
302
+ type: String,
303
+ required: false
304
+ },
305
+ lightLabel: {
306
+ type: Object,
307
+ required: false
308
+ },
309
+ labelTrigger: {
310
+ type: Boolean,
311
+ required: false,
312
+ default: void 0
313
+ },
314
+ "onUpdate:text": {
315
+ type: Function,
316
+ required: false
317
+ },
318
+ mode: {
319
+ type: String,
320
+ required: false
321
+ },
322
+ light: {
323
+ type: Boolean,
324
+ required: false,
325
+ default: void 0
326
+ },
327
+ label: {
328
+ type: [
329
+ Object,
330
+ Function,
331
+ String,
332
+ Number,
333
+ null,
334
+ Boolean,
335
+ Array
336
+ ],
337
+ required: false,
338
+ default: void 0
339
+ },
340
+ proFieldKey: {
341
+ type: [String, Number],
342
+ required: false
343
+ },
344
+ render: {
345
+ type: Function,
346
+ required: false
347
+ },
348
+ formItemRender: {
349
+ type: Function,
350
+ required: false
351
+ }
352
+ },
353
+ name: "FieldSelect",
354
+ inheritAttrs: false
355
+ });
356
+ //#endregion
357
+ export { FieldSelect as default, proFieldParsingValueEnumToArray, useFieldFetchData };
@@ -0,0 +1,18 @@
1
+ import { ProFieldFC } from "../../typing.js";
2
+ import * as _$vue from "vue";
3
+ import * as _$_antdv_next1_pro_provider0 from "@antdv-next1/pro-provider";
4
+ import { CustomSlotsType, VueNode } from "@v-c/util/dist/type";
5
+
6
+ //#region src/components/Slider/index.d.ts
7
+ type FieldSliderProps = ProFieldFC<{
8
+ text: string;
9
+ }>;
10
+ declare const FieldSlider: _$vue.DefineSetupFnComponent<FieldSliderProps, {}, CustomSlotsType<{
11
+ default?: () => VueNode;
12
+ }>, _$_antdv_next1_pro_provider0.BaseProFieldFC<any> & _$_antdv_next1_pro_provider0.ProRenderFieldPropsType<any> & {
13
+ text: string;
14
+ } & {
15
+ id?: string;
16
+ } & {}, _$vue.PublicProps>;
17
+ //#endregion
18
+ export { FieldSliderProps, FieldSlider as default };
@@ -0,0 +1,99 @@
1
+ import { Fragment, createVNode, defineComponent, mergeProps } from "vue";
2
+ import { Slider } from "antdv-next";
3
+ import { unit } from "@antdv-next/cssinjs";
4
+ //#region src/components/Slider/index.tsx
5
+ const FieldSlider = /* @__PURE__ */ defineComponent((props) => {
6
+ return () => {
7
+ const { text, mode, render, formItemRender, fieldProps } = props;
8
+ if (mode === "read") {
9
+ const dom = text;
10
+ if (render) return createVNode(Fragment, null, [render(text, {
11
+ mode,
12
+ ...fieldProps
13
+ }, createVNode(Fragment, null, [dom]))]);
14
+ return createVNode(Fragment, null, [dom]);
15
+ }
16
+ if (mode === "edit" || mode === "update") {
17
+ const dom = createVNode(Slider, mergeProps(fieldProps, { "style": {
18
+ minWidth: unit(120),
19
+ ...fieldProps?.style
20
+ } }), null);
21
+ if (formItemRender) return createVNode(Fragment, null, [formItemRender(text, {
22
+ mode,
23
+ ...fieldProps
24
+ }, dom)]);
25
+ return dom;
26
+ }
27
+ return null;
28
+ };
29
+ }, {
30
+ props: {
31
+ text: {
32
+ type: [
33
+ Object,
34
+ Function,
35
+ String,
36
+ Number,
37
+ null,
38
+ Boolean,
39
+ Array
40
+ ],
41
+ required: false,
42
+ default: void 0
43
+ },
44
+ "onUpdate:text": {
45
+ type: Function,
46
+ required: false
47
+ },
48
+ fieldProps: {
49
+ type: Object,
50
+ required: false
51
+ },
52
+ mode: {
53
+ type: String,
54
+ required: false
55
+ },
56
+ light: {
57
+ type: Boolean,
58
+ required: false,
59
+ default: void 0
60
+ },
61
+ label: {
62
+ type: [
63
+ Object,
64
+ Function,
65
+ String,
66
+ Number,
67
+ null,
68
+ Boolean,
69
+ Array
70
+ ],
71
+ required: false,
72
+ default: void 0
73
+ },
74
+ valueEnum: {
75
+ type: [Object, Map],
76
+ required: false
77
+ },
78
+ proFieldKey: {
79
+ type: [String, Number],
80
+ required: false
81
+ },
82
+ render: {
83
+ type: Function,
84
+ required: false
85
+ },
86
+ formItemRender: {
87
+ type: Function,
88
+ required: false
89
+ },
90
+ id: {
91
+ type: String,
92
+ required: false
93
+ }
94
+ },
95
+ name: "FieldSlider",
96
+ inheritAttrs: false
97
+ });
98
+ //#endregion
99
+ export { FieldSlider as default };
@@ -0,0 +1,31 @@
1
+ import * as _$vue from "vue";
2
+ import { CSSProperties, FunctionalComponent } from "vue";
3
+ import { CustomSlotsType, VueNode } from "@v-c/util/dist/type";
4
+
5
+ //#region src/components/Status/index.d.ts
6
+ interface FieldStatusProps {
7
+ class?: string;
8
+ style?: CSSProperties;
9
+ }
10
+ /** 快捷操作,用于快速的展示一个状态 */
11
+ declare const StatusComponents: {
12
+ Success: FunctionalComponent<FieldStatusProps>;
13
+ Error: FunctionalComponent<FieldStatusProps>;
14
+ Processing: FunctionalComponent<FieldStatusProps>;
15
+ Default: FunctionalComponent<FieldStatusProps>;
16
+ Warning: FunctionalComponent<FieldStatusProps>;
17
+ success: FunctionalComponent<FieldStatusProps>;
18
+ error: FunctionalComponent<FieldStatusProps>;
19
+ processing: FunctionalComponent<FieldStatusProps>;
20
+ default: FunctionalComponent<FieldStatusProps>;
21
+ warning: FunctionalComponent<FieldStatusProps>;
22
+ };
23
+ declare const FieldStatus: _$vue.DefineSetupFnComponent<FieldStatusProps & {
24
+ color: string;
25
+ }, {}, CustomSlotsType<{
26
+ default?: () => VueNode;
27
+ }>, FieldStatusProps & {
28
+ color: string;
29
+ } & {}, _$vue.PublicProps>;
30
+ //#endregion
31
+ export { FieldStatusProps, StatusComponents, FieldStatus as default };
@@ -0,0 +1,71 @@
1
+ import { createVNode, defineComponent, mergeProps } from "vue";
2
+ import { Badge } from "antdv-next";
3
+ //#region src/components/Status/index.tsx
4
+ /** 快捷操作,用于快速的展示一个状态 */
5
+ const StatusComponents = {
6
+ Success: (props, { slots }) => createVNode(Badge, mergeProps(props, {
7
+ "status": "success",
8
+ "text": slots.default?.()
9
+ }), null),
10
+ Error: (props, { slots }) => createVNode(Badge, mergeProps(props, {
11
+ "status": "error",
12
+ "text": slots.default?.()
13
+ }), null),
14
+ Default: (props, { slots }) => createVNode(Badge, mergeProps(props, {
15
+ "status": "default",
16
+ "text": slots.default?.()
17
+ }), null),
18
+ Processing: (props, { slots }) => createVNode(Badge, mergeProps(props, {
19
+ "status": "processing",
20
+ "text": slots.default?.()
21
+ }), null),
22
+ Warning: (props, { slots }) => createVNode(Badge, mergeProps(props, {
23
+ "status": "warning",
24
+ "text": slots.default?.()
25
+ }), null),
26
+ success: (props, { slots }) => createVNode(Badge, mergeProps(props, {
27
+ "status": "success",
28
+ "text": slots.default?.()
29
+ }), null),
30
+ error: (props, { slots }) => createVNode(Badge, mergeProps(props, {
31
+ "status": "error",
32
+ "text": slots.default?.()
33
+ }), null),
34
+ default: (props, { slots }) => createVNode(Badge, mergeProps(props, {
35
+ "status": "default",
36
+ "text": slots.default?.()
37
+ }), null),
38
+ processing: (props, { slots }) => createVNode(Badge, mergeProps(props, {
39
+ "status": "processing",
40
+ "text": slots.default?.()
41
+ }), null),
42
+ warning: (props, { slots }) => createVNode(Badge, mergeProps(props, {
43
+ "status": "warning",
44
+ "text": slots.default?.()
45
+ }), null)
46
+ };
47
+ const FieldStatus = /* @__PURE__ */ defineComponent((props, { slots }) => {
48
+ return () => createVNode(Badge, {
49
+ "color": props.color,
50
+ "text": slots.default?.()
51
+ }, null);
52
+ }, {
53
+ props: {
54
+ class: {
55
+ type: String,
56
+ required: false
57
+ },
58
+ style: {
59
+ type: Object,
60
+ required: false
61
+ },
62
+ color: {
63
+ type: String,
64
+ required: true
65
+ }
66
+ },
67
+ name: "FieldStatus",
68
+ inheritAttrs: false
69
+ });
70
+ //#endregion
71
+ export { StatusComponents, FieldStatus as default };
@@ -0,0 +1,31 @@
1
+ import { ProFieldFC } from "../../typing.js";
2
+ import * as _$vue from "vue";
3
+ import * as _$_antdv_next1_pro_provider0 from "@antdv-next1/pro-provider";
4
+ import { SwitchProps } from "antdv-next";
5
+ import { CustomSlotsType, VueNode } from "@v-c/util/dist/type";
6
+ import { CheckedValueType } from "antdv-next/dist/switch/index";
7
+
8
+ //#region src/components/Switch/index.d.ts
9
+ type FieldSwitchProps = ProFieldFC<{
10
+ text: boolean;
11
+ variant?: 'outlined' | 'borderless' | 'filled';
12
+ }, SwitchProps & {
13
+ 'onUpdate:checked'?: (checked: CheckedValueType) => void;
14
+ 'onUpdate:value'?: (checked: CheckedValueType) => void;
15
+ }>;
16
+ declare const FieldSwitch: _$vue.DefineSetupFnComponent<FieldSwitchProps, {}, CustomSlotsType<{
17
+ default?: () => VueNode;
18
+ }>, _$_antdv_next1_pro_provider0.BaseProFieldFC<SwitchProps & {
19
+ 'onUpdate:checked'?: (checked: CheckedValueType) => void;
20
+ 'onUpdate:value'?: (checked: CheckedValueType) => void;
21
+ }> & _$_antdv_next1_pro_provider0.ProRenderFieldPropsType<SwitchProps & {
22
+ 'onUpdate:checked'?: (checked: CheckedValueType) => void;
23
+ 'onUpdate:value'?: (checked: CheckedValueType) => void;
24
+ }> & {
25
+ text: boolean;
26
+ variant?: "outlined" | "borderless" | "filled";
27
+ } & {
28
+ id?: string;
29
+ } & {}, _$vue.PublicProps>;
30
+ //#endregion
31
+ export { FieldSwitchProps, FieldSwitch as default };