form-wrapper.vue
751 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<template>
<a-input-number
v-if="type === 'number'"
:style="{ width: '80px' }"
size="small"
:default-value="(defaultValue as number)"
@change="handleChange"
/>
<a-switch
v-else
:default-checked="(defaultValue as boolean)"
size="small"
@change="handleChange"
/>
</template>
<script lang="ts" setup>
const props = defineProps({
type: {
type: String,
default: '',
},
name: {
type: String,
default: '',
},
defaultValue: {
type: [String, Boolean, Number],
default: '',
},
})
const emit = defineEmits(['inputChange'])
const handleChange = (value: unknown) => {
emit('inputChange', {
value,
key: props.name,
})
}
</script>