@tmagic/form 1.3.0-alpha.2 → 1.3.0-alpha.21
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/style.css +21 -0
- package/dist/tmagic-form.js +1400 -1187
- package/dist/tmagic-form.js.map +1 -1
- package/dist/tmagic-form.umd.cjs +1425 -1210
- package/dist/tmagic-form.umd.cjs.map +1 -1
- package/package.json +10 -11
- package/src/Form.vue +14 -2
- package/src/FormDialog.vue +20 -6
- package/src/FormDrawer.vue +134 -0
- package/src/containers/Col.vue +5 -1
- package/src/containers/Container.vue +16 -11
- package/src/containers/Fieldset.vue +5 -1
- package/src/containers/GroupList.vue +7 -2
- package/src/containers/GroupListItem.vue +15 -9
- package/src/containers/Panel.vue +5 -1
- package/src/containers/Row.vue +5 -1
- package/src/containers/Step.vue +5 -1
- package/src/containers/Table.vue +153 -151
- package/src/containers/Tabs.vue +14 -8
- package/src/fields/Cascader.vue +7 -13
- package/src/fields/Checkbox.vue +7 -13
- package/src/fields/CheckboxGroup.vue +9 -15
- package/src/fields/ColorPicker.vue +10 -14
- package/src/fields/Date.vue +11 -15
- package/src/fields/DateTime.vue +12 -16
- package/src/fields/Daterange.vue +7 -13
- package/src/fields/Display.vue +7 -11
- package/src/fields/DynamicField.vue +8 -14
- package/src/fields/Hidden.vue +7 -11
- package/src/fields/Link.vue +7 -13
- package/src/fields/Number.vue +12 -15
- package/src/fields/NumberRange.vue +50 -0
- package/src/fields/RadioGroup.vue +7 -13
- package/src/fields/Select.vue +28 -30
- package/src/fields/SelectOptionGroups.vue +7 -3
- package/src/fields/SelectOptions.vue +5 -1
- package/src/fields/Switch.vue +11 -15
- package/src/fields/Text.vue +12 -15
- package/src/fields/Textarea.vue +12 -15
- package/src/fields/Time.vue +10 -14
- package/src/index.ts +43 -37
- package/src/schema.ts +27 -5
- package/src/theme/form-drawer.scss +11 -0
- package/src/theme/index.scss +2 -0
- package/src/theme/number-range.scss +8 -0
- package/src/theme/panel.scss +6 -0
- package/src/utils/config.ts +1 -1
- package/src/utils/form.ts +2 -1
- package/types/Form.vue.d.ts +11 -6
- package/types/FormDialog.vue.d.ts +89 -125
- package/types/FormDrawer.vue.d.ts +338 -0
- package/types/containers/Col.vue.d.ts +1 -1
- package/types/containers/Container.vue.d.ts +6 -3
- package/types/containers/Fieldset.vue.d.ts +6 -3
- package/types/containers/GroupList.vue.d.ts +1 -1
- package/types/containers/GroupListItem.vue.d.ts +1 -1
- package/types/containers/Panel.vue.d.ts +3 -3
- package/types/containers/Row.vue.d.ts +1 -1
- package/types/containers/Step.vue.d.ts +6 -3
- package/types/containers/Table.vue.d.ts +9 -6
- package/types/containers/Tabs.vue.d.ts +6 -3
- package/types/fields/Cascader.vue.d.ts +3 -23
- package/types/fields/Checkbox.vue.d.ts +3 -23
- package/types/fields/CheckboxGroup.vue.d.ts +3 -23
- package/types/fields/ColorPicker.vue.d.ts +2 -24
- package/types/fields/Date.vue.d.ts +2 -24
- package/types/fields/DateTime.vue.d.ts +2 -24
- package/types/fields/Daterange.vue.d.ts +3 -23
- package/types/fields/Display.vue.d.ts +2 -18
- package/types/fields/DynamicField.vue.d.ts +3 -32
- package/types/fields/Hidden.vue.d.ts +2 -18
- package/types/fields/Link.vue.d.ts +3 -23
- package/types/fields/Number.vue.d.ts +2 -25
- package/types/fields/NumberRange.vue.d.ts +12 -0
- package/types/fields/RadioGroup.vue.d.ts +3 -23
- package/types/fields/Select.vue.d.ts +3 -23
- package/types/fields/SelectOptionGroups.vue.d.ts +2 -2
- package/types/fields/SelectOptions.vue.d.ts +2 -2
- package/types/fields/Switch.vue.d.ts +2 -24
- package/types/fields/Text.vue.d.ts +2 -25
- package/types/fields/Textarea.vue.d.ts +2 -25
- package/types/fields/Time.vue.d.ts +2 -24
- package/types/index.d.ts +6 -1
- package/types/schema.d.ts +25 -5
- package/types/utils/config.d.ts +1 -1
package/src/fields/Display.vue
CHANGED
|
@@ -2,19 +2,15 @@
|
|
|
2
2
|
<span v-if="model">{{ model[name] }}</span>
|
|
3
3
|
</template>
|
|
4
4
|
|
|
5
|
-
<script setup lang="ts"
|
|
6
|
-
import { DisplayConfig } from '../schema';
|
|
5
|
+
<script setup lang="ts">
|
|
6
|
+
import type { DisplayConfig, FieldProps } from '../schema';
|
|
7
7
|
import { useAddField } from '../utils/useAddField';
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
name: string;
|
|
15
|
-
prop: string;
|
|
16
|
-
lastValues?: Record<string, any>;
|
|
17
|
-
}>();
|
|
9
|
+
defineOptions({
|
|
10
|
+
name: 'MFormDisplay',
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
const props = defineProps<FieldProps<DisplayConfig>>();
|
|
18
14
|
|
|
19
15
|
if (props.config.initValue && props.model) {
|
|
20
16
|
// eslint-disable-next-line vue/no-setup-props-destructure
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
</div>
|
|
13
13
|
</template>
|
|
14
14
|
|
|
15
|
-
<script lang="ts" setup
|
|
15
|
+
<script lang="ts" setup>
|
|
16
16
|
/**
|
|
17
17
|
* 动态表单,目前只支持input类型字段
|
|
18
18
|
* inputType: 'dynamic-field',
|
|
@@ -27,27 +27,21 @@ import { onBeforeUnmount, reactive, watch } from 'vue';
|
|
|
27
27
|
|
|
28
28
|
import { TMagicForm, TMagicFormItem, TMagicInput } from '@tmagic/design';
|
|
29
29
|
|
|
30
|
-
import { DynamicFieldConfig } from '../schema';
|
|
30
|
+
import type { DynamicFieldConfig, FieldProps } from '../schema';
|
|
31
31
|
import { getConfig } from '../utils/config';
|
|
32
32
|
import { useAddField } from '../utils/useAddField';
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
name: string;
|
|
40
|
-
prop: string;
|
|
41
|
-
disabled?: boolean;
|
|
42
|
-
size?: 'large' | 'default' | 'small';
|
|
43
|
-
lastValues?: Record<string, any>;
|
|
44
|
-
}>();
|
|
34
|
+
defineOptions({
|
|
35
|
+
name: 'MFormDynamicField',
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
const props = defineProps<FieldProps<DynamicFieldConfig>>();
|
|
45
39
|
|
|
46
40
|
const emit = defineEmits(['change']);
|
|
47
41
|
|
|
48
42
|
useAddField(props.prop);
|
|
49
43
|
|
|
50
|
-
const request = getConfig('request')
|
|
44
|
+
const request = getConfig<Function>('request');
|
|
51
45
|
const fieldMap = reactive<{ [key: string]: any }>({
|
|
52
46
|
value: {},
|
|
53
47
|
});
|
package/src/fields/Hidden.vue
CHANGED
|
@@ -2,19 +2,15 @@
|
|
|
2
2
|
<input v-if="model" v-model="model[name]" type="hidden" />
|
|
3
3
|
</template>
|
|
4
4
|
|
|
5
|
-
<script setup lang="ts"
|
|
6
|
-
import { HiddenConfig } from '../schema';
|
|
5
|
+
<script setup lang="ts">
|
|
6
|
+
import type { FieldProps, HiddenConfig } from '../schema';
|
|
7
7
|
import { useAddField } from '../utils/useAddField';
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
name: string;
|
|
15
|
-
prop: string;
|
|
16
|
-
lastValues?: Record<string, any>;
|
|
17
|
-
}>();
|
|
9
|
+
defineOptions({
|
|
10
|
+
name: 'MFormHidden',
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
const props = defineProps<FieldProps<HiddenConfig>>();
|
|
18
14
|
|
|
19
15
|
useAddField(props.prop);
|
|
20
16
|
</script>
|
package/src/fields/Link.vue
CHANGED
|
@@ -16,26 +16,20 @@
|
|
|
16
16
|
</div>
|
|
17
17
|
</template>
|
|
18
18
|
|
|
19
|
-
<script lang="ts" setup
|
|
19
|
+
<script lang="ts" setup>
|
|
20
20
|
import { computed, inject, ref } from 'vue';
|
|
21
21
|
|
|
22
22
|
import { TMagicButton } from '@tmagic/design';
|
|
23
23
|
|
|
24
24
|
import FormDialog from '../FormDialog.vue';
|
|
25
|
-
import { FormState, LinkConfig } from '../schema';
|
|
25
|
+
import type { FieldProps, FormState, LinkConfig } from '../schema';
|
|
26
26
|
import { useAddField } from '../utils/useAddField';
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
name: string;
|
|
34
|
-
prop: string;
|
|
35
|
-
disabled?: boolean;
|
|
36
|
-
size?: 'large' | 'default' | 'small';
|
|
37
|
-
lastValues?: Record<string, any>;
|
|
38
|
-
}>();
|
|
28
|
+
defineOptions({
|
|
29
|
+
name: 'MFormLink',
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
const props = defineProps<FieldProps<LinkConfig>>();
|
|
39
33
|
|
|
40
34
|
const emit = defineEmits(['change']);
|
|
41
35
|
|
package/src/fields/Number.vue
CHANGED
|
@@ -15,27 +15,24 @@
|
|
|
15
15
|
></TMagicInputNumber>
|
|
16
16
|
</template>
|
|
17
17
|
|
|
18
|
-
<script lang="ts" setup
|
|
18
|
+
<script lang="ts" setup>
|
|
19
19
|
import { inject } from 'vue';
|
|
20
20
|
|
|
21
21
|
import { TMagicInputNumber } from '@tmagic/design';
|
|
22
22
|
|
|
23
|
-
import { FormState, NumberConfig } from '../schema';
|
|
23
|
+
import type { FieldProps, FormState, NumberConfig } from '../schema';
|
|
24
24
|
import { useAddField } from '../utils/useAddField';
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
name: string;
|
|
32
|
-
prop: string;
|
|
33
|
-
disabled?: boolean;
|
|
34
|
-
size?: 'large' | 'default' | 'small';
|
|
35
|
-
lastValues?: Record<string, any>;
|
|
36
|
-
}>();
|
|
26
|
+
defineOptions({
|
|
27
|
+
name: 'MFormNumber',
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const props = defineProps<FieldProps<NumberConfig>>();
|
|
37
31
|
|
|
38
|
-
const emit = defineEmits
|
|
32
|
+
const emit = defineEmits<{
|
|
33
|
+
change: [values: number];
|
|
34
|
+
input: [values: number];
|
|
35
|
+
}>();
|
|
39
36
|
|
|
40
37
|
useAddField(props.prop);
|
|
41
38
|
|
|
@@ -45,7 +42,7 @@ const changeHandler = (value: number) => {
|
|
|
45
42
|
emit('change', value);
|
|
46
43
|
};
|
|
47
44
|
|
|
48
|
-
const inputHandler = (v:
|
|
45
|
+
const inputHandler = (v: number) => {
|
|
49
46
|
emit('input', v);
|
|
50
47
|
mForm?.$emit('field-input', props.prop, v);
|
|
51
48
|
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="m-fields-number-range">
|
|
3
|
+
<TMagicInput
|
|
4
|
+
v-model="model[name][0]"
|
|
5
|
+
clearable
|
|
6
|
+
:size="size"
|
|
7
|
+
:disabled="disabled"
|
|
8
|
+
@change="minChangeHandler"
|
|
9
|
+
></TMagicInput>
|
|
10
|
+
<span class="split-tag">-</span>
|
|
11
|
+
<TMagicInput
|
|
12
|
+
v-model="model[name][1]"
|
|
13
|
+
clearable
|
|
14
|
+
:size="size"
|
|
15
|
+
:disabled="disabled"
|
|
16
|
+
@change="maxChangeHandler"
|
|
17
|
+
></TMagicInput>
|
|
18
|
+
</div>
|
|
19
|
+
</template>
|
|
20
|
+
|
|
21
|
+
<script lang="ts" setup>
|
|
22
|
+
import { TMagicInput } from '@tmagic/design';
|
|
23
|
+
|
|
24
|
+
import type { FieldProps, NumberRangeConfig } from '../schema';
|
|
25
|
+
import { useAddField } from '../utils/useAddField';
|
|
26
|
+
|
|
27
|
+
defineOptions({
|
|
28
|
+
name: 'MFormNumberRange',
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
const props = defineProps<FieldProps<NumberRangeConfig>>();
|
|
32
|
+
|
|
33
|
+
const emit = defineEmits<{
|
|
34
|
+
change: [values: [number, number]];
|
|
35
|
+
}>();
|
|
36
|
+
|
|
37
|
+
useAddField(props.prop);
|
|
38
|
+
|
|
39
|
+
if (!Array.isArray(props.model[props.name])) {
|
|
40
|
+
props.model[props.name] = [];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const minChangeHandler = (v: string) => {
|
|
44
|
+
emit('change', [Number(v), props.model[props.name][1]]);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const maxChangeHandler = (v: string) => {
|
|
48
|
+
emit('change', [props.model[props.name][0], Number(v)]);
|
|
49
|
+
};
|
|
50
|
+
</script>
|
|
@@ -10,23 +10,17 @@
|
|
|
10
10
|
</TMagicRadioGroup>
|
|
11
11
|
</template>
|
|
12
12
|
|
|
13
|
-
<script lang="ts" setup
|
|
13
|
+
<script lang="ts" setup>
|
|
14
14
|
import { TMagicRadio, TMagicRadioGroup } from '@tmagic/design';
|
|
15
15
|
|
|
16
|
-
import { RadioGroupConfig } from '../schema';
|
|
16
|
+
import type { FieldProps, RadioGroupConfig } from '../schema';
|
|
17
17
|
import { useAddField } from '../utils/useAddField';
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
name: string;
|
|
25
|
-
prop: string;
|
|
26
|
-
disabled?: boolean;
|
|
27
|
-
size?: 'large' | 'default' | 'small';
|
|
28
|
-
lastValues?: Record<string, any>;
|
|
29
|
-
}>();
|
|
19
|
+
defineOptions({
|
|
20
|
+
name: 'MFormRadioGroup',
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
const props = defineProps<FieldProps<RadioGroupConfig>>();
|
|
30
24
|
|
|
31
25
|
const emit = defineEmits(['change']);
|
|
32
26
|
|
package/src/fields/Select.vue
CHANGED
|
@@ -25,29 +25,24 @@
|
|
|
25
25
|
</TMagicSelect>
|
|
26
26
|
</template>
|
|
27
27
|
|
|
28
|
-
<script lang="ts" setup
|
|
28
|
+
<script lang="ts" setup>
|
|
29
29
|
import { inject, onBeforeMount, Ref, ref, watch, watchEffect } from 'vue';
|
|
30
30
|
|
|
31
31
|
import { TMagicSelect } from '@tmagic/design';
|
|
32
|
+
import { getValueByKeyPath } from '@tmagic/utils';
|
|
32
33
|
|
|
33
|
-
import { FormState, SelectConfig, SelectGroupOption, SelectOption } from '../schema';
|
|
34
|
+
import type { FieldProps, FormState, SelectConfig, SelectGroupOption, SelectOption } from '../schema';
|
|
34
35
|
import { getConfig } from '../utils/config';
|
|
35
36
|
import { useAddField } from '../utils/useAddField';
|
|
36
37
|
|
|
37
38
|
import SelectOptionGroups from './SelectOptionGroups.vue';
|
|
38
39
|
import SelectOptions from './SelectOptions.vue';
|
|
39
40
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
name: string;
|
|
46
|
-
prop: string;
|
|
47
|
-
disabled?: boolean;
|
|
48
|
-
size?: 'large' | 'default' | 'small';
|
|
49
|
-
lastValues?: Record<string, any>;
|
|
50
|
-
}>();
|
|
41
|
+
defineOptions({
|
|
42
|
+
name: 'MFormSelect',
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
const props = defineProps<FieldProps<SelectConfig>>();
|
|
51
46
|
|
|
52
47
|
const emit = defineEmits(['change']);
|
|
53
48
|
|
|
@@ -77,13 +72,17 @@ const equalValue = (value: any, v: any): boolean => {
|
|
|
77
72
|
};
|
|
78
73
|
|
|
79
74
|
const mapOptions = (data: any[]) => {
|
|
80
|
-
const {
|
|
81
|
-
|
|
82
|
-
|
|
75
|
+
const {
|
|
76
|
+
option = {
|
|
77
|
+
text: 'text',
|
|
78
|
+
value: 'value',
|
|
79
|
+
},
|
|
80
|
+
} = props.config;
|
|
81
|
+
const { text = 'text', value = 'value' } = option;
|
|
83
82
|
|
|
84
83
|
return data.map((item) => ({
|
|
85
|
-
text: typeof text === 'function' ? text(item) : item[text
|
|
86
|
-
value: typeof value === 'function' ? value(item) : item[value
|
|
84
|
+
text: typeof text === 'function' ? text(item) : item[text],
|
|
85
|
+
value: typeof value === 'function' ? value(item) : item[value],
|
|
87
86
|
}));
|
|
88
87
|
};
|
|
89
88
|
|
|
@@ -98,8 +97,10 @@ const getOptions = async () => {
|
|
|
98
97
|
|
|
99
98
|
let items: SelectOption[] | SelectGroupOption[] = [];
|
|
100
99
|
|
|
101
|
-
const {
|
|
102
|
-
|
|
100
|
+
const { option } = props.config;
|
|
101
|
+
|
|
102
|
+
if (!option) return [];
|
|
103
|
+
|
|
103
104
|
const { root = '', totalKey = 'total' } = option;
|
|
104
105
|
let { body = {}, url } = option;
|
|
105
106
|
|
|
@@ -157,12 +158,9 @@ const getOptions = async () => {
|
|
|
157
158
|
});
|
|
158
159
|
}
|
|
159
160
|
|
|
160
|
-
const optionsData = root
|
|
161
|
+
const optionsData = getValueByKeyPath(root, res);
|
|
161
162
|
|
|
162
|
-
const resTotal = globalThis.parseInt(
|
|
163
|
-
totalKey.split('.').reduce((accumulator, currentValue: any) => accumulator[currentValue], res),
|
|
164
|
-
10,
|
|
165
|
-
);
|
|
163
|
+
const resTotal = globalThis.parseInt(getValueByKeyPath(totalKey, res), 10);
|
|
166
164
|
if (resTotal > 0) {
|
|
167
165
|
total.value = resTotal;
|
|
168
166
|
}
|
|
@@ -222,8 +220,10 @@ const getInitLocalOption = async () => {
|
|
|
222
220
|
const getInitOption = async () => {
|
|
223
221
|
if (!props.model) return [];
|
|
224
222
|
|
|
225
|
-
const {
|
|
226
|
-
|
|
223
|
+
const { option } = props.config;
|
|
224
|
+
|
|
225
|
+
if (!option) return [];
|
|
226
|
+
|
|
227
227
|
const { root = '', initRoot = '' } = option;
|
|
228
228
|
let { initBody = {} } = option;
|
|
229
229
|
|
|
@@ -283,9 +283,7 @@ const getInitOption = async () => {
|
|
|
283
283
|
});
|
|
284
284
|
}
|
|
285
285
|
|
|
286
|
-
let initData = (initRoot || root)
|
|
287
|
-
.split('.')
|
|
288
|
-
.reduce((accumulator, currentValue: any) => accumulator[currentValue], res);
|
|
286
|
+
let initData = getValueByKeyPath(initRoot || root, res);
|
|
289
287
|
if (initData) {
|
|
290
288
|
if (!Array.isArray(initData)) {
|
|
291
289
|
initData = [initData];
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<TMagicOptionGroup v-for="(group, index) in options" :key="index" :label="group.label" :disabled="group.disabled">
|
|
3
3
|
<component
|
|
4
4
|
v-for="(item, index) in group.options"
|
|
5
|
-
:is="uiComponent
|
|
5
|
+
:is="uiComponent"
|
|
6
6
|
:key="index"
|
|
7
7
|
:label="item.label || item.text"
|
|
8
8
|
:value="item.value"
|
|
@@ -12,14 +12,18 @@
|
|
|
12
12
|
</TMagicOptionGroup>
|
|
13
13
|
</template>
|
|
14
14
|
|
|
15
|
-
<script lang="ts" setup
|
|
15
|
+
<script lang="ts" setup>
|
|
16
16
|
import { getConfig, TMagicOptionGroup } from '@tmagic/design';
|
|
17
17
|
|
|
18
18
|
import { SelectGroupOption } from '../schema';
|
|
19
19
|
|
|
20
|
+
defineOptions({
|
|
21
|
+
name: 'MFormSelectOptionGroups',
|
|
22
|
+
});
|
|
23
|
+
|
|
20
24
|
defineProps<{
|
|
21
25
|
options: SelectGroupOption[];
|
|
22
26
|
}>();
|
|
23
27
|
|
|
24
|
-
const uiComponent = getConfig('components').option;
|
|
28
|
+
const uiComponent = getConfig('components')?.option.component || 'el-option';
|
|
25
29
|
</script>
|
|
@@ -8,11 +8,15 @@
|
|
|
8
8
|
></TMagicOption>
|
|
9
9
|
</template>
|
|
10
10
|
|
|
11
|
-
<script lang="ts" setup
|
|
11
|
+
<script lang="ts" setup>
|
|
12
12
|
import { TMagicOption } from '@tmagic/design';
|
|
13
13
|
|
|
14
14
|
import { SelectOption } from '../schema';
|
|
15
15
|
|
|
16
|
+
defineOptions({
|
|
17
|
+
name: 'MFormSelectOptions',
|
|
18
|
+
});
|
|
19
|
+
|
|
16
20
|
defineProps<{
|
|
17
21
|
options: SelectOption[];
|
|
18
22
|
valueKey?: string;
|
package/src/fields/Switch.vue
CHANGED
|
@@ -9,31 +9,27 @@
|
|
|
9
9
|
></TMagicSwitch>
|
|
10
10
|
</template>
|
|
11
11
|
|
|
12
|
-
<script lang="ts" setup
|
|
12
|
+
<script lang="ts" setup>
|
|
13
13
|
import { computed } from 'vue';
|
|
14
14
|
|
|
15
15
|
import { TMagicSwitch } from '@tmagic/design';
|
|
16
16
|
|
|
17
|
-
import { SwitchConfig } from '../schema';
|
|
17
|
+
import type { FieldProps, SwitchConfig } from '../schema';
|
|
18
18
|
import { useAddField } from '../utils/useAddField';
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
initValues?: any;
|
|
24
|
-
values?: any;
|
|
25
|
-
name: string;
|
|
26
|
-
prop: string;
|
|
27
|
-
disabled?: boolean;
|
|
28
|
-
size?: 'large' | 'default' | 'small';
|
|
29
|
-
lastValues?: Record<string, any>;
|
|
30
|
-
}>();
|
|
20
|
+
defineOptions({
|
|
21
|
+
name: 'MFormSwitch',
|
|
22
|
+
});
|
|
31
23
|
|
|
32
|
-
const
|
|
24
|
+
const props = defineProps<FieldProps<SwitchConfig>>();
|
|
25
|
+
|
|
26
|
+
const emit = defineEmits<{
|
|
27
|
+
change: [value: any];
|
|
28
|
+
}>();
|
|
33
29
|
|
|
34
30
|
useAddField(props.prop);
|
|
35
31
|
|
|
36
|
-
const changeHandler = (value:
|
|
32
|
+
const changeHandler = (value: any) => {
|
|
37
33
|
emit('change', value);
|
|
38
34
|
};
|
|
39
35
|
|
package/src/fields/Text.vue
CHANGED
|
@@ -23,34 +23,31 @@
|
|
|
23
23
|
</TMagicInput>
|
|
24
24
|
</template>
|
|
25
25
|
|
|
26
|
-
<script lang="ts" setup
|
|
26
|
+
<script lang="ts" setup>
|
|
27
27
|
import { inject } from 'vue';
|
|
28
28
|
|
|
29
29
|
import { TMagicButton, TMagicInput } from '@tmagic/design';
|
|
30
30
|
import { isNumber } from '@tmagic/utils';
|
|
31
31
|
|
|
32
|
-
import { FormState, TextConfig } from '../schema';
|
|
32
|
+
import type { FieldProps, FormState, TextConfig } from '../schema';
|
|
33
33
|
import { useAddField } from '../utils/useAddField';
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
name: string;
|
|
41
|
-
prop: string;
|
|
42
|
-
disabled?: boolean;
|
|
43
|
-
size?: 'large' | 'default' | 'small';
|
|
44
|
-
lastValues?: Record<string, any>;
|
|
45
|
-
}>();
|
|
35
|
+
defineOptions({
|
|
36
|
+
name: 'MFormText',
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
const props = defineProps<FieldProps<TextConfig>>();
|
|
46
40
|
|
|
47
|
-
const emit = defineEmits
|
|
41
|
+
const emit = defineEmits<{
|
|
42
|
+
change: [value: string];
|
|
43
|
+
input: [value: string];
|
|
44
|
+
}>();
|
|
48
45
|
|
|
49
46
|
useAddField(props.prop);
|
|
50
47
|
|
|
51
48
|
const mForm = inject<FormState | undefined>('mForm');
|
|
52
49
|
|
|
53
|
-
const changeHandler = (value:
|
|
50
|
+
const changeHandler = (value: string) => {
|
|
54
51
|
emit('change', value);
|
|
55
52
|
};
|
|
56
53
|
|
package/src/fields/Textarea.vue
CHANGED
|
@@ -12,33 +12,30 @@
|
|
|
12
12
|
</TMagicInput>
|
|
13
13
|
</template>
|
|
14
14
|
|
|
15
|
-
<script lang="ts" setup
|
|
15
|
+
<script lang="ts" setup>
|
|
16
16
|
import { inject } from 'vue';
|
|
17
17
|
|
|
18
18
|
import { TMagicInput } from '@tmagic/design';
|
|
19
19
|
|
|
20
|
-
import { FormState, TextareaConfig } from '../schema';
|
|
20
|
+
import type { FieldProps, FormState, TextareaConfig } from '../schema';
|
|
21
21
|
import { useAddField } from '../utils/useAddField';
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
name: string;
|
|
29
|
-
prop: string;
|
|
30
|
-
disabled?: boolean;
|
|
31
|
-
size?: 'large' | 'default' | 'small';
|
|
32
|
-
lastValues?: Record<string, any>;
|
|
33
|
-
}>();
|
|
23
|
+
defineOptions({
|
|
24
|
+
name: 'MFormTextarea',
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
const props = defineProps<FieldProps<TextareaConfig>>();
|
|
34
28
|
|
|
35
|
-
const emit = defineEmits
|
|
29
|
+
const emit = defineEmits<{
|
|
30
|
+
change: [value: string];
|
|
31
|
+
input: [value: string];
|
|
32
|
+
}>();
|
|
36
33
|
|
|
37
34
|
useAddField(props.prop);
|
|
38
35
|
|
|
39
36
|
const mForm = inject<FormState | null>('mForm');
|
|
40
37
|
|
|
41
|
-
const changeHandler = (value:
|
|
38
|
+
const changeHandler = (value: string) => {
|
|
42
39
|
emit('change', value);
|
|
43
40
|
};
|
|
44
41
|
|
package/src/fields/Time.vue
CHANGED
|
@@ -10,25 +10,21 @@
|
|
|
10
10
|
></TMagicTimePicker>
|
|
11
11
|
</template>
|
|
12
12
|
|
|
13
|
-
<script lang="ts" setup
|
|
13
|
+
<script lang="ts" setup>
|
|
14
14
|
import { TMagicTimePicker } from '@tmagic/design';
|
|
15
15
|
|
|
16
|
-
import { TimeConfig } from '../schema';
|
|
16
|
+
import type { FieldProps, TimeConfig } from '../schema';
|
|
17
17
|
import { useAddField } from '../utils/useAddField';
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
name: string;
|
|
25
|
-
prop: string;
|
|
26
|
-
disabled?: boolean;
|
|
27
|
-
size?: 'large' | 'default' | 'small';
|
|
28
|
-
lastValues?: Record<string, any>;
|
|
29
|
-
}>();
|
|
19
|
+
defineOptions({
|
|
20
|
+
name: 'MFormTime',
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
const props = defineProps<FieldProps<TimeConfig>>();
|
|
30
24
|
|
|
31
|
-
const emit = defineEmits
|
|
25
|
+
const emit = defineEmits<{
|
|
26
|
+
change: [value: string];
|
|
27
|
+
}>();
|
|
32
28
|
|
|
33
29
|
useAddField(props.prop);
|
|
34
30
|
|