@tmagic/form 1.3.0-alpha.23 → 1.3.0-alpha.24
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.
- package/dist/tmagic-form.js +170 -83
- package/dist/tmagic-form.js.map +1 -1
- package/dist/tmagic-form.umd.cjs +198 -110
- package/dist/tmagic-form.umd.cjs.map +1 -1
- package/package.json +3 -3
- package/src/FormDialog.vue +4 -0
- package/src/FormDrawer.vue +4 -0
- package/src/fields/Timerange.vue +76 -0
- package/src/index.ts +3 -0
- package/types/FormDialog.vue.d.ts +4 -0
- package/types/FormDrawer.vue.d.ts +4 -0
- package/types/fields/Timerange.vue.d.ts +14 -0
- package/types/index.d.ts +1 -0
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.3.0-alpha.
|
|
2
|
+
"version": "1.3.0-alpha.24",
|
|
3
3
|
"name": "@tmagic/form",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": [
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@element-plus/icons-vue": "^2.0.9",
|
|
39
|
-
"@tmagic/design": "1.3.0-alpha.
|
|
40
|
-
"@tmagic/utils": "1.3.0-alpha.
|
|
39
|
+
"@tmagic/design": "1.3.0-alpha.24",
|
|
40
|
+
"@tmagic/utils": "1.3.0-alpha.24",
|
|
41
41
|
"lodash-es": "^4.17.21",
|
|
42
42
|
"sortablejs": "^1.14.0",
|
|
43
43
|
"vue": "^3.3.4"
|
package/src/FormDialog.vue
CHANGED
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
:init-values="values"
|
|
26
26
|
:parent-values="parentValues"
|
|
27
27
|
:label-width="labelWidth"
|
|
28
|
+
:label-position="labelPosition"
|
|
29
|
+
:inline="inline"
|
|
28
30
|
@change="changeHandler"
|
|
29
31
|
></Form>
|
|
30
32
|
<slot></slot>
|
|
@@ -78,6 +80,8 @@ const props = withDefaults(
|
|
|
78
80
|
fullscreen?: boolean;
|
|
79
81
|
disabled?: boolean;
|
|
80
82
|
title?: string;
|
|
83
|
+
inline?: boolean;
|
|
84
|
+
labelPosition?: string;
|
|
81
85
|
zIndex?: number;
|
|
82
86
|
size?: 'small' | 'default' | 'large';
|
|
83
87
|
confirmText?: string;
|
package/src/FormDrawer.vue
CHANGED
|
@@ -21,6 +21,8 @@
|
|
|
21
21
|
:init-values="values"
|
|
22
22
|
:parent-values="parentValues"
|
|
23
23
|
:label-width="labelWidth"
|
|
24
|
+
:label-position="labelPosition"
|
|
25
|
+
:inline="inline"
|
|
24
26
|
@change="changeHandler"
|
|
25
27
|
></Form>
|
|
26
28
|
<slot></slot>
|
|
@@ -71,6 +73,8 @@ withDefaults(
|
|
|
71
73
|
zIndex?: number;
|
|
72
74
|
size?: 'small' | 'default' | 'large';
|
|
73
75
|
confirmText?: string;
|
|
76
|
+
inline?: boolean;
|
|
77
|
+
labelPosition?: string;
|
|
74
78
|
}>(),
|
|
75
79
|
{
|
|
76
80
|
closeOnPressEscape: true,
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<TMagicTimePicker
|
|
3
|
+
v-model="value"
|
|
4
|
+
is-range
|
|
5
|
+
range-separator="-"
|
|
6
|
+
start-placeholder="开始时间"
|
|
7
|
+
end-placeholder="结束时间"
|
|
8
|
+
:size="size"
|
|
9
|
+
:unlink-panels="true"
|
|
10
|
+
:disabled="disabled"
|
|
11
|
+
:default-time="config.defaultTime"
|
|
12
|
+
@change="changeHandler"
|
|
13
|
+
></TMagicTimePicker>
|
|
14
|
+
</template>
|
|
15
|
+
|
|
16
|
+
<script lang="ts" setup>
|
|
17
|
+
import { ref, watch } from 'vue';
|
|
18
|
+
|
|
19
|
+
import { TMagicTimePicker } from '@tmagic/design';
|
|
20
|
+
import { datetimeFormatter } from '@tmagic/utils';
|
|
21
|
+
|
|
22
|
+
import type { DaterangeConfig, FieldProps } from '../schema';
|
|
23
|
+
import { useAddField } from '../utils/useAddField';
|
|
24
|
+
|
|
25
|
+
defineOptions({
|
|
26
|
+
name: 'MFormTimeRange',
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
const props = defineProps<FieldProps<DaterangeConfig>>();
|
|
30
|
+
|
|
31
|
+
const emit = defineEmits(['change']);
|
|
32
|
+
|
|
33
|
+
useAddField(props.prop);
|
|
34
|
+
|
|
35
|
+
// eslint-disable-next-line vue/no-setup-props-destructure
|
|
36
|
+
const { names } = props.config;
|
|
37
|
+
const value = ref<(Date | undefined)[] | null>([]);
|
|
38
|
+
|
|
39
|
+
if (props.model !== undefined && names?.length) {
|
|
40
|
+
watch(
|
|
41
|
+
[() => props.model[names[0]], () => props.model[names[1]]],
|
|
42
|
+
([start, end], [preStart, preEnd]) => {
|
|
43
|
+
if (!value.value) {
|
|
44
|
+
value.value = [];
|
|
45
|
+
}
|
|
46
|
+
if (!start || !end) value.value = [];
|
|
47
|
+
if (start !== preStart) value.value[0] = start;
|
|
48
|
+
if (end !== preEnd) value.value[1] = end;
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
immediate: true,
|
|
52
|
+
},
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const setValue = (v: Date[] | Date) => {
|
|
57
|
+
names?.forEach((item, index) => {
|
|
58
|
+
if (!props.model) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (Array.isArray(v)) {
|
|
62
|
+
props.model[item] = datetimeFormatter(v[index]?.toString(), '');
|
|
63
|
+
} else {
|
|
64
|
+
props.model[item] = undefined;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
const changeHandler = (v: Date[]) => {
|
|
70
|
+
const value = v || [];
|
|
71
|
+
if (names?.length) {
|
|
72
|
+
setValue(value);
|
|
73
|
+
}
|
|
74
|
+
emit('change', value);
|
|
75
|
+
};
|
|
76
|
+
</script>
|
package/src/index.ts
CHANGED
|
@@ -45,6 +45,7 @@ import Switch from './fields/Switch.vue';
|
|
|
45
45
|
import Text from './fields/Text.vue';
|
|
46
46
|
import Textarea from './fields/Textarea.vue';
|
|
47
47
|
import Time from './fields/Time.vue';
|
|
48
|
+
import Timerange from './fields/Timerange.vue';
|
|
48
49
|
import { setConfig } from './utils/config';
|
|
49
50
|
import Form from './Form.vue';
|
|
50
51
|
import FormDialog from './FormDialog.vue';
|
|
@@ -76,6 +77,7 @@ export { default as MTime } from './fields/Time.vue';
|
|
|
76
77
|
export { default as MCheckbox } from './fields/Checkbox.vue';
|
|
77
78
|
export { default as MSwitch } from './fields/Switch.vue';
|
|
78
79
|
export { default as MDaterange } from './fields/Daterange.vue';
|
|
80
|
+
export { default as MTimerange } from './fields/Timerange.vue';
|
|
79
81
|
export { default as MColorPicker } from './fields/ColorPicker.vue';
|
|
80
82
|
export { default as MCheckboxGroup } from './fields/CheckboxGroup.vue';
|
|
81
83
|
export { default as MRadioGroup } from './fields/RadioGroup.vue';
|
|
@@ -117,6 +119,7 @@ export default {
|
|
|
117
119
|
app.component('m-fields-date', Date);
|
|
118
120
|
app.component('m-fields-datetime', DateTime);
|
|
119
121
|
app.component('m-fields-daterange', Daterange);
|
|
122
|
+
app.component('m-fields-timerange', Timerange);
|
|
120
123
|
app.component('m-fields-time', Time);
|
|
121
124
|
app.component('m-fields-checkbox', Checkbox);
|
|
122
125
|
app.component('m-fields-switch', Switch);
|
|
@@ -8,6 +8,8 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
|
|
|
8
8
|
fullscreen?: boolean | undefined;
|
|
9
9
|
disabled?: boolean | undefined;
|
|
10
10
|
title?: string | undefined;
|
|
11
|
+
inline?: boolean | undefined;
|
|
12
|
+
labelPosition?: string | undefined;
|
|
11
13
|
zIndex?: number | undefined;
|
|
12
14
|
size?: "large" | "default" | "small" | undefined;
|
|
13
15
|
confirmText?: string | undefined;
|
|
@@ -289,6 +291,8 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
|
|
|
289
291
|
fullscreen?: boolean | undefined;
|
|
290
292
|
disabled?: boolean | undefined;
|
|
291
293
|
title?: string | undefined;
|
|
294
|
+
inline?: boolean | undefined;
|
|
295
|
+
labelPosition?: string | undefined;
|
|
292
296
|
zIndex?: number | undefined;
|
|
293
297
|
size?: "large" | "default" | "small" | undefined;
|
|
294
298
|
confirmText?: string | undefined;
|
|
@@ -11,6 +11,8 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
|
|
|
11
11
|
zIndex?: number | undefined;
|
|
12
12
|
size?: "large" | "default" | "small" | undefined;
|
|
13
13
|
confirmText?: string | undefined;
|
|
14
|
+
inline?: boolean | undefined;
|
|
15
|
+
labelPosition?: string | undefined;
|
|
14
16
|
}>, {
|
|
15
17
|
closeOnPressEscape: boolean;
|
|
16
18
|
config: () => never[];
|
|
@@ -291,6 +293,8 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
|
|
|
291
293
|
zIndex?: number | undefined;
|
|
292
294
|
size?: "large" | "default" | "small" | undefined;
|
|
293
295
|
confirmText?: string | undefined;
|
|
296
|
+
inline?: boolean | undefined;
|
|
297
|
+
labelPosition?: string | undefined;
|
|
294
298
|
}>, {
|
|
295
299
|
closeOnPressEscape: boolean;
|
|
296
300
|
config: () => never[];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DaterangeConfig, FieldProps } from '../schema';
|
|
2
|
+
declare const _default: import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<FieldProps<DaterangeConfig>>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "change"[], "change", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<FieldProps<DaterangeConfig>>>> & {
|
|
3
|
+
onChange?: ((...args: any[]) => any) | undefined;
|
|
4
|
+
}, {}, {}>;
|
|
5
|
+
export default _default;
|
|
6
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
7
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
8
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
9
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
10
|
+
} : {
|
|
11
|
+
type: import('vue').PropType<T[K]>;
|
|
12
|
+
required: true;
|
|
13
|
+
};
|
|
14
|
+
};
|
package/types/index.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export { default as MTime } from './fields/Time.vue';
|
|
|
24
24
|
export { default as MCheckbox } from './fields/Checkbox.vue';
|
|
25
25
|
export { default as MSwitch } from './fields/Switch.vue';
|
|
26
26
|
export { default as MDaterange } from './fields/Daterange.vue';
|
|
27
|
+
export { default as MTimerange } from './fields/Timerange.vue';
|
|
27
28
|
export { default as MColorPicker } from './fields/ColorPicker.vue';
|
|
28
29
|
export { default as MCheckboxGroup } from './fields/CheckboxGroup.vue';
|
|
29
30
|
export { default as MRadioGroup } from './fields/RadioGroup.vue';
|