@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,189 @@
1
+ import { Fragment, createVNode, defineComponent, mergeProps } from "vue";
2
+ import { useIntl } from "@antdv-next1/pro-provider";
3
+ import { FieldLabel, parseValueToDay, useState } from "@antdv-next1/pro-utils";
4
+ import { DateRangePicker, Space } from "antdv-next";
5
+ import dayjs from "dayjs";
6
+ //#region src/components/RangePicker/DatePicker.tsx
7
+ const FieldDateRangePicker = /* @__PURE__ */ defineComponent((props, { slots }) => {
8
+ const intl = useIntl();
9
+ const [open, setOpen] = useState(false);
10
+ const genFormatText = (formatValue) => {
11
+ if (typeof props.fieldProps?.format === "function") return props.fieldProps?.format?.(formatValue);
12
+ return props.fieldProps?.format || props.format || "YYYY-MM-DD";
13
+ };
14
+ return () => {
15
+ const { text, mode, light, label, format = "YYYY-MM-DD", render, picker, formItemRender, showTime, separator = "~", lightLabel, variant: propsVariant, fieldProps, ...rest } = props;
16
+ const [startText, endText] = Array.isArray(text) ? text : [];
17
+ const parsedStartText = startText ? dayjs(startText).format(genFormatText(dayjs(startText))) : "";
18
+ const parsedEndText = endText ? dayjs(endText).format(genFormatText(dayjs(endText))) : "";
19
+ if (mode === "read") {
20
+ const dom = createVNode(Space, {
21
+ "align": "center",
22
+ "wrap": true
23
+ }, { default: () => [
24
+ createVNode("div", null, [parsedStartText || "-"]),
25
+ " ",
26
+ separator,
27
+ " ",
28
+ createVNode("div", null, [parsedEndText || "-"])
29
+ ] });
30
+ if (render) return createVNode(Fragment, null, [render(text, {
31
+ mode,
32
+ ...rest,
33
+ fieldProps
34
+ }, createVNode("span", null, [dom]))]);
35
+ return dom;
36
+ }
37
+ if (mode === "edit" || mode === "update") {
38
+ const dayValue = parseValueToDay(fieldProps?.value);
39
+ const placeholder = fieldProps?.placeholder || [intl.value.getMessage({
40
+ id: "tableForm.selectPlaceholder",
41
+ defaultMessage: "请选择"
42
+ }), intl.value.getMessage({
43
+ id: "tableForm.selectPlaceholder",
44
+ defaultMessage: "请选择"
45
+ })];
46
+ let dom = createVNode(DateRangePicker, mergeProps({
47
+ "format": format,
48
+ "showTime": showTime,
49
+ "placeholder": placeholder
50
+ }, fieldProps, { "value": dayValue }), slots);
51
+ if (light) dom = createVNode(FieldLabel, {
52
+ "label": label,
53
+ "onClick": () => {
54
+ fieldProps?.onOpenChange?.(true);
55
+ setOpen(true);
56
+ },
57
+ "style": dayValue ? { paddingInlineEnd: 0 } : void 0,
58
+ "disabled": Array.isArray(fieldProps?.disabled) ? fieldProps.disabled[0] : fieldProps?.disabled,
59
+ "value": dayValue || open.value ? createVNode(DateRangePicker, mergeProps({
60
+ "picker": picker,
61
+ "showTime": showTime,
62
+ "format": format
63
+ }, fieldProps, {
64
+ "placeholder": placeholder,
65
+ "value": dayValue,
66
+ "onOpenChange": (isOpen) => {
67
+ if (dayValue) setOpen(isOpen);
68
+ fieldProps?.onOpenChange?.(isOpen);
69
+ },
70
+ "onChange": (dates, dateStrings) => {
71
+ fieldProps?.onChange?.(dates, dateStrings);
72
+ if (!dates) setOpen(false);
73
+ }
74
+ }), null) : null,
75
+ "allowClear": false,
76
+ "variant": propsVariant,
77
+ "ref": lightLabel,
78
+ "downIcon": dayValue || open.value ? false : void 0
79
+ }, null);
80
+ if (formItemRender) return createVNode(Fragment, null, [formItemRender(text, {
81
+ mode,
82
+ ...rest,
83
+ fieldProps
84
+ }, dom)]);
85
+ return dom;
86
+ }
87
+ return null;
88
+ };
89
+ }, {
90
+ props: {
91
+ text: {
92
+ type: [
93
+ Object,
94
+ Function,
95
+ String,
96
+ Number,
97
+ null,
98
+ Boolean,
99
+ Array
100
+ ],
101
+ required: false,
102
+ default: void 0
103
+ },
104
+ "onUpdate:text": {
105
+ type: Function,
106
+ required: false
107
+ },
108
+ fieldProps: {
109
+ type: Object,
110
+ required: false
111
+ },
112
+ mode: {
113
+ type: String,
114
+ required: false
115
+ },
116
+ light: {
117
+ type: Boolean,
118
+ required: false,
119
+ default: void 0
120
+ },
121
+ label: {
122
+ type: [
123
+ Object,
124
+ Function,
125
+ String,
126
+ Number,
127
+ null,
128
+ Boolean,
129
+ Array
130
+ ],
131
+ required: false,
132
+ default: void 0
133
+ },
134
+ valueEnum: {
135
+ type: [Object, Map],
136
+ required: false
137
+ },
138
+ proFieldKey: {
139
+ type: [String, Number],
140
+ required: false
141
+ },
142
+ render: {
143
+ type: Function,
144
+ required: false
145
+ },
146
+ formItemRender: {
147
+ type: Function,
148
+ required: false
149
+ },
150
+ format: {
151
+ type: String,
152
+ required: false
153
+ },
154
+ variant: {
155
+ type: String,
156
+ required: false
157
+ },
158
+ showTime: {
159
+ type: Boolean,
160
+ required: false,
161
+ default: void 0
162
+ },
163
+ separator: {
164
+ type: String,
165
+ required: false
166
+ },
167
+ picker: {
168
+ type: String,
169
+ required: false
170
+ },
171
+ lightLabel: {
172
+ type: Object,
173
+ required: false
174
+ },
175
+ labelTrigger: {
176
+ type: Boolean,
177
+ required: false,
178
+ default: void 0
179
+ },
180
+ id: {
181
+ type: String,
182
+ required: false
183
+ }
184
+ },
185
+ name: "FieldDateRangePicker",
186
+ inheritAttrs: false
187
+ });
188
+ //#endregion
189
+ export { FieldDateRangePicker as default };
@@ -0,0 +1,25 @@
1
+ import { ProFieldFC, ProFieldLightProps } from "../../typing.js";
2
+ import * as _$vue from "vue";
3
+ import * as _$_antdv_next1_pro_provider0 from "@antdv-next1/pro-provider";
4
+ import { TimeRangePickerProps } from "antdv-next";
5
+ import { CustomSlotsType, VueNode } from "@v-c/util/dist/type";
6
+
7
+ //#region src/components/RangePicker/TimePicker.d.ts
8
+ type FieldTimeRangePickerProps = ProFieldFC<{
9
+ text: string[] | number[];
10
+ format?: string;
11
+ separator?: string;
12
+ variant?: 'outlined' | 'borderless' | 'filled' | 'underlined';
13
+ } & ProFieldLightProps, TimeRangePickerProps>;
14
+ declare const FieldTimeRangePicker: _$vue.DefineSetupFnComponent<FieldTimeRangePickerProps, {}, CustomSlotsType<{
15
+ default?: () => VueNode;
16
+ }>, _$_antdv_next1_pro_provider0.BaseProFieldFC<TimeRangePickerProps> & _$_antdv_next1_pro_provider0.ProRenderFieldPropsType<TimeRangePickerProps> & {
17
+ text: string[] | number[];
18
+ format?: string;
19
+ separator?: string;
20
+ variant?: "outlined" | "borderless" | "filled" | "underlined";
21
+ } & ProFieldLightProps & {
22
+ id?: string;
23
+ } & {}, _$vue.PublicProps>;
24
+ //#endregion
25
+ export { FieldTimeRangePickerProps, FieldTimeRangePicker as default };
@@ -0,0 +1,177 @@
1
+ import { Fragment, createVNode, defineComponent, mergeProps } from "vue";
2
+ import { useIntl } from "@antdv-next1/pro-provider";
3
+ import { FieldLabel, parseValueToDay, useState } from "@antdv-next1/pro-utils";
4
+ import { Space, TimeRangePicker } from "antdv-next";
5
+ import dayjs from "dayjs";
6
+ //#region src/components/RangePicker/TimePicker.tsx
7
+ const FieldTimeRangePicker = /* @__PURE__ */ defineComponent((props) => {
8
+ const intl = useIntl();
9
+ const [open, setOpen] = useState(false);
10
+ return () => {
11
+ const { text, light, label, mode, lightLabel, format, render, variant, separator = "~", formItemRender, fieldProps, ...rest } = props;
12
+ const finalFormat = fieldProps?.format || format || "HH:mm:ss";
13
+ const [startText, endText] = Array.isArray(text) ? text : [];
14
+ const startTextIsNumberOrMoment = dayjs.isDayjs(startText) || typeof startText === "number";
15
+ const endTextIsNumberOrMoment = dayjs.isDayjs(endText) || typeof endText === "number";
16
+ const parsedStartText = startText ? dayjs(startText, startTextIsNumberOrMoment ? void 0 : finalFormat).format(finalFormat) : "";
17
+ const parsedEndText = endText ? dayjs(endText, endTextIsNumberOrMoment ? void 0 : finalFormat).format(finalFormat) : "";
18
+ if (mode === "read") {
19
+ const dom = createVNode(Space, {
20
+ "align": "center",
21
+ "wrap": true
22
+ }, { default: () => [
23
+ createVNode("div", null, [parsedStartText || "-"]),
24
+ " ",
25
+ separator,
26
+ " ",
27
+ createVNode("div", null, [parsedEndText || "-"])
28
+ ] });
29
+ if (render) return createVNode(Fragment, null, [render(text, {
30
+ mode,
31
+ ...rest,
32
+ fieldProps
33
+ }, createVNode("span", null, [dom]))]);
34
+ return dom;
35
+ }
36
+ if (mode === "edit" || mode === "update") {
37
+ const dayValue = parseValueToDay(fieldProps?.value, finalFormat);
38
+ let dom = createVNode(TimeRangePicker, mergeProps({
39
+ "format": format,
40
+ "variant": variant
41
+ }, fieldProps, { "value": dayValue }), null);
42
+ if (light) {
43
+ const { disabled, placeholder = [intl.value.getMessage({
44
+ id: "tableForm.selectPlaceholder",
45
+ defaultMessage: "请选择"
46
+ }), intl.value.getMessage({
47
+ id: "tableForm.selectPlaceholder",
48
+ defaultMessage: "请选择"
49
+ })] } = fieldProps;
50
+ dom = createVNode(FieldLabel, {
51
+ "onClick": () => {
52
+ fieldProps?.onOpenChange?.(true);
53
+ setOpen(true);
54
+ },
55
+ "style": dayValue ? { paddingInlineEnd: 0 } : void 0,
56
+ "label": label,
57
+ "disabled": Array.isArray(disabled) ? disabled[0] : disabled,
58
+ "variant": variant,
59
+ "placeholder": placeholder,
60
+ "value": dayValue || open.value ? createVNode(TimeRangePicker, mergeProps({
61
+ "variant": variant ?? fieldProps?.variant,
62
+ "format": format
63
+ }, fieldProps, {
64
+ "placeholder": placeholder,
65
+ "value": dayValue,
66
+ "onOpenChange": (isOpen) => {
67
+ setOpen(isOpen);
68
+ fieldProps?.onOpenChange?.(isOpen);
69
+ },
70
+ "open": open.value
71
+ }), null) : null,
72
+ "downIcon": dayValue || open.value ? false : void 0,
73
+ "allowClear": false,
74
+ "ref": lightLabel
75
+ }, null);
76
+ }
77
+ if (formItemRender) return createVNode(Fragment, null, [formItemRender(text, {
78
+ mode,
79
+ ...rest,
80
+ fieldProps
81
+ }, dom)]);
82
+ return dom;
83
+ }
84
+ return null;
85
+ };
86
+ }, {
87
+ props: {
88
+ text: {
89
+ type: [
90
+ Object,
91
+ Function,
92
+ String,
93
+ Number,
94
+ null,
95
+ Boolean,
96
+ Array
97
+ ],
98
+ required: false,
99
+ default: void 0
100
+ },
101
+ "onUpdate:text": {
102
+ type: Function,
103
+ required: false
104
+ },
105
+ fieldProps: {
106
+ type: Object,
107
+ required: false
108
+ },
109
+ mode: {
110
+ type: String,
111
+ required: false
112
+ },
113
+ light: {
114
+ type: Boolean,
115
+ required: false,
116
+ default: void 0
117
+ },
118
+ label: {
119
+ type: [
120
+ Object,
121
+ Function,
122
+ String,
123
+ Number,
124
+ null,
125
+ Boolean,
126
+ Array
127
+ ],
128
+ required: false,
129
+ default: void 0
130
+ },
131
+ valueEnum: {
132
+ type: [Object, Map],
133
+ required: false
134
+ },
135
+ proFieldKey: {
136
+ type: [String, Number],
137
+ required: false
138
+ },
139
+ render: {
140
+ type: Function,
141
+ required: false
142
+ },
143
+ formItemRender: {
144
+ type: Function,
145
+ required: false
146
+ },
147
+ format: {
148
+ type: String,
149
+ required: false
150
+ },
151
+ separator: {
152
+ type: String,
153
+ required: false
154
+ },
155
+ variant: {
156
+ type: String,
157
+ required: false
158
+ },
159
+ lightLabel: {
160
+ type: Object,
161
+ required: false
162
+ },
163
+ labelTrigger: {
164
+ type: Boolean,
165
+ required: false,
166
+ default: void 0
167
+ },
168
+ id: {
169
+ type: String,
170
+ required: false
171
+ }
172
+ },
173
+ name: "FieldTimeRangePicker",
174
+ inheritAttrs: false
175
+ });
176
+ //#endregion
177
+ export { FieldTimeRangePicker as default };
@@ -0,0 +1,3 @@
1
+ import FieldDateRangePicker, { FieldDateRangePickerProps } from "./DatePicker.js";
2
+ import FieldTimeRangePicker, { FieldTimeRangePickerProps } from "./TimePicker.js";
3
+ export { FieldDateRangePicker, type FieldDateRangePickerProps, FieldTimeRangePicker, type FieldTimeRangePickerProps };
@@ -0,0 +1,3 @@
1
+ import FieldTimeRangePicker from "./TimePicker.js";
2
+ import FieldDateRangePicker from "./DatePicker.js";
3
+ export { FieldDateRangePicker, FieldTimeRangePicker };
@@ -0,0 +1,19 @@
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 { RateProps } from "antdv-next";
5
+ import { CustomSlotsType, VueNode } from "@v-c/util/dist/type";
6
+
7
+ //#region src/components/Rate/index.d.ts
8
+ type FieldRateProps = ProFieldFC<{
9
+ text: number;
10
+ }, RateProps>;
11
+ declare const FieldRate: _$vue.DefineSetupFnComponent<FieldRateProps, {}, CustomSlotsType<{
12
+ default?: () => VueNode;
13
+ }>, _$_antdv_next1_pro_provider0.BaseProFieldFC<RateProps> & _$_antdv_next1_pro_provider0.ProRenderFieldPropsType<RateProps> & {
14
+ text: number;
15
+ } & {
16
+ id?: string;
17
+ } & {}, _$vue.PublicProps>;
18
+ //#endregion
19
+ export { FieldRateProps, FieldRate as default };
@@ -0,0 +1,98 @@
1
+ import { Fragment, createVNode, defineComponent, mergeProps } from "vue";
2
+ import { Rate } from "antdv-next";
3
+ //#region src/components/Rate/index.tsx
4
+ const FieldRate = /* @__PURE__ */ defineComponent((props) => {
5
+ return () => {
6
+ const { text, mode, render, formItemRender, fieldProps } = props;
7
+ if (mode === "read") {
8
+ const dom = createVNode(Rate, mergeProps({
9
+ "allowHalf": true,
10
+ "disabled": true
11
+ }, fieldProps, { "value": text }), null);
12
+ if (render) return createVNode(Fragment, null, [render(text, {
13
+ mode,
14
+ ...fieldProps
15
+ }, createVNode(Fragment, null, [dom]))]);
16
+ return dom;
17
+ }
18
+ if (mode === "edit" || mode === "update") {
19
+ const dom = createVNode(Rate, mergeProps({ "allowHalf": true }, fieldProps), null);
20
+ if (formItemRender) return createVNode(Fragment, null, [formItemRender(text, {
21
+ mode,
22
+ ...fieldProps
23
+ }, dom)]);
24
+ return dom;
25
+ }
26
+ return null;
27
+ };
28
+ }, {
29
+ props: {
30
+ text: {
31
+ type: [
32
+ Object,
33
+ Function,
34
+ String,
35
+ Number,
36
+ null,
37
+ Boolean,
38
+ Array
39
+ ],
40
+ required: false,
41
+ default: void 0
42
+ },
43
+ "onUpdate:text": {
44
+ type: Function,
45
+ required: false
46
+ },
47
+ fieldProps: {
48
+ type: Object,
49
+ required: false
50
+ },
51
+ mode: {
52
+ type: String,
53
+ required: false
54
+ },
55
+ light: {
56
+ type: Boolean,
57
+ required: false,
58
+ default: void 0
59
+ },
60
+ label: {
61
+ type: [
62
+ Object,
63
+ Function,
64
+ String,
65
+ Number,
66
+ null,
67
+ Boolean,
68
+ Array
69
+ ],
70
+ required: false,
71
+ default: void 0
72
+ },
73
+ valueEnum: {
74
+ type: [Object, Map],
75
+ required: false
76
+ },
77
+ proFieldKey: {
78
+ type: [String, Number],
79
+ required: false
80
+ },
81
+ render: {
82
+ type: Function,
83
+ required: false
84
+ },
85
+ formItemRender: {
86
+ type: Function,
87
+ required: false
88
+ },
89
+ id: {
90
+ type: String,
91
+ required: false
92
+ }
93
+ },
94
+ name: "FieldRate",
95
+ inheritAttrs: false
96
+ });
97
+ //#endregion
98
+ export { FieldRate as default };
@@ -0,0 +1,28 @@
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 { IntlType } from "@antdv-next1/pro-provider";
5
+ import { InputNumberProps } from "antdv-next";
6
+ import { CustomSlotsType, VueNode } from "@v-c/util/dist/type";
7
+
8
+ //#region src/components/Second/index.d.ts
9
+ /**
10
+ * 格式化秒
11
+ * @param result
12
+ * @param intl
13
+ */
14
+ declare function formatSecond(result: number, intl: IntlType): string;
15
+ type FieldSecondProps = ProFieldFC<{
16
+ text: number;
17
+ placeholder?: string;
18
+ }, InputNumberProps>;
19
+ declare const FieldSecond: _$vue.DefineSetupFnComponent<FieldSecondProps, {}, CustomSlotsType<{
20
+ default?: () => VueNode;
21
+ }>, _$_antdv_next1_pro_provider0.BaseProFieldFC<InputNumberProps> & _$_antdv_next1_pro_provider0.ProRenderFieldPropsType<InputNumberProps> & {
22
+ text: number;
23
+ placeholder?: string;
24
+ } & {
25
+ id?: string;
26
+ } & {}, _$vue.PublicProps>;
27
+ //#endregion
28
+ export { FieldSecondProps, FieldSecond as default, formatSecond };
@@ -0,0 +1,151 @@
1
+ import { Fragment, createVNode, defineComponent, mergeProps } from "vue";
2
+ import { useIntl } from "@antdv-next1/pro-provider";
3
+ import { InputNumber } from "antdv-next";
4
+ //#region src/components/Second/index.tsx
5
+ /**
6
+ * 格式化秒
7
+ * @param result
8
+ * @param intl
9
+ */
10
+ function formatSecond(result, intl) {
11
+ let newResult = result;
12
+ let formatText;
13
+ let past = false;
14
+ if (newResult < 0) {
15
+ newResult = -newResult;
16
+ past = true;
17
+ }
18
+ const d = Math.floor(newResult / (3600 * 24));
19
+ const h = Math.floor(newResult / 3600 % 24);
20
+ const m = Math.floor(newResult / 60 % 60);
21
+ formatText = `${Math.floor(newResult % 60)}${intl.getMessage({
22
+ id: "time.seconds",
23
+ defaultMessage: "秒"
24
+ })}`;
25
+ if (m > 0) formatText = `${m}${intl.getMessage({
26
+ id: "time.minutes",
27
+ defaultMessage: "分钟"
28
+ })}${formatText}`;
29
+ if (h > 0) formatText = `${h}${intl.getMessage({
30
+ id: "time.hours",
31
+ defaultMessage: "小时"
32
+ })}${formatText}`;
33
+ if (d > 0) formatText = `${d}${intl.getMessage({
34
+ id: "time.days",
35
+ defaultMessage: "天"
36
+ })}${formatText}`;
37
+ if (past) formatText += intl.getMessage({
38
+ id: "time.ago",
39
+ defaultMessage: "前"
40
+ });
41
+ return formatText;
42
+ }
43
+ const FieldSecond = /* @__PURE__ */ defineComponent((props) => {
44
+ const intl = useIntl();
45
+ return () => {
46
+ const { text, mode: type, render, formItemRender, fieldProps, placeholder: propsPlaceholder, ...rest } = props;
47
+ if (type === "read") {
48
+ const dom = createVNode("span", null, [formatSecond(Number(text), intl.value)]);
49
+ if (render) return createVNode(Fragment, null, [render(text, {
50
+ mode: type,
51
+ ...rest,
52
+ fieldProps
53
+ }, dom)]);
54
+ return dom;
55
+ }
56
+ if (type === "edit" || type === "update") {
57
+ const placeholder = propsPlaceholder || intl.value.getMessage({
58
+ id: "tableForm.inputPlaceholder",
59
+ defaultMessage: "请输入"
60
+ });
61
+ const dom = createVNode(InputNumber, mergeProps({
62
+ "min": 0,
63
+ "style": { width: "100%" },
64
+ "defaultValue": text,
65
+ "placeholder": placeholder
66
+ }, fieldProps), null);
67
+ if (formItemRender) return createVNode(Fragment, null, [formItemRender(text, {
68
+ mode: type,
69
+ ...rest,
70
+ fieldProps,
71
+ placeholder
72
+ }, dom)]);
73
+ return dom;
74
+ }
75
+ return null;
76
+ };
77
+ }, {
78
+ props: {
79
+ text: {
80
+ type: [
81
+ Object,
82
+ Function,
83
+ String,
84
+ Number,
85
+ null,
86
+ Boolean,
87
+ Array
88
+ ],
89
+ required: false,
90
+ default: void 0
91
+ },
92
+ "onUpdate:text": {
93
+ type: Function,
94
+ required: false
95
+ },
96
+ fieldProps: {
97
+ type: Object,
98
+ required: false
99
+ },
100
+ mode: {
101
+ type: String,
102
+ required: false
103
+ },
104
+ light: {
105
+ type: Boolean,
106
+ required: false,
107
+ default: void 0
108
+ },
109
+ label: {
110
+ type: [
111
+ Object,
112
+ Function,
113
+ String,
114
+ Number,
115
+ null,
116
+ Boolean,
117
+ Array
118
+ ],
119
+ required: false,
120
+ default: void 0
121
+ },
122
+ valueEnum: {
123
+ type: [Object, Map],
124
+ required: false
125
+ },
126
+ proFieldKey: {
127
+ type: [String, Number],
128
+ required: false
129
+ },
130
+ render: {
131
+ type: Function,
132
+ required: false
133
+ },
134
+ formItemRender: {
135
+ type: Function,
136
+ required: false
137
+ },
138
+ placeholder: {
139
+ type: String,
140
+ required: false
141
+ },
142
+ id: {
143
+ type: String,
144
+ required: false
145
+ }
146
+ },
147
+ name: "FieldSecond",
148
+ inheritAttrs: false
149
+ });
150
+ //#endregion
151
+ export { FieldSecond as default, formatSecond };