form-wrapper.vue 846 B

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