index.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <template>
  2. <div class="m-4">
  3. <CollapseContainer title="基础示例">
  4. <BasicForm
  5. :labelWidth="100"
  6. :schemas="schemas"
  7. :actionColOptions="{ span: 24 }"
  8. @submit="handleSubmit"
  9. />
  10. </CollapseContainer>
  11. </div>
  12. </template>
  13. <script lang="ts">
  14. import { defineComponent } from 'vue';
  15. import { BasicForm, FormSchema } from '/@/components/Form/index';
  16. import { CollapseContainer } from '/@/components/Container/index';
  17. import { useMessage } from '/@/hooks/web/useMessage';
  18. const schemas: FormSchema[] = [
  19. {
  20. field: 'field1',
  21. component: 'Input',
  22. label: '字段1',
  23. colProps: {
  24. span: 8,
  25. },
  26. defaultValue: '111',
  27. componentProps: () => {
  28. return {
  29. placeholder: '自定义placeholder',
  30. onChange: (e: any) => {
  31. console.log(e);
  32. },
  33. };
  34. },
  35. },
  36. {
  37. field: 'field2',
  38. component: 'Input',
  39. label: '字段2',
  40. colProps: {
  41. span: 8,
  42. },
  43. },
  44. {
  45. field: 'field3',
  46. component: 'DatePicker',
  47. label: '字段3',
  48. colProps: {
  49. span: 8,
  50. },
  51. },
  52. {
  53. field: 'field4',
  54. component: 'Select',
  55. label: '字段4',
  56. colProps: {
  57. span: 8,
  58. },
  59. componentProps: {
  60. options: [
  61. {
  62. label: '选项1',
  63. value: '1',
  64. key: '1',
  65. },
  66. {
  67. label: '选项2',
  68. value: '2',
  69. key: '2',
  70. },
  71. ],
  72. },
  73. },
  74. {
  75. field: 'field5',
  76. component: 'CheckboxGroup',
  77. label: '字段5',
  78. colProps: {
  79. span: 8,
  80. },
  81. componentProps: {
  82. options: [
  83. {
  84. label: '选项1',
  85. value: '1',
  86. },
  87. {
  88. label: '选项2',
  89. value: '2',
  90. },
  91. ],
  92. },
  93. },
  94. {
  95. field: 'field7',
  96. component: 'RadioGroup',
  97. label: '字段7',
  98. colProps: {
  99. span: 8,
  100. },
  101. componentProps: {
  102. options: [
  103. {
  104. label: '选项1',
  105. value: '1',
  106. },
  107. {
  108. label: '选项2',
  109. value: '2',
  110. },
  111. ],
  112. },
  113. },
  114. ];
  115. export default defineComponent({
  116. components: { BasicForm, CollapseContainer },
  117. setup() {
  118. const { createMessage } = useMessage();
  119. return {
  120. schemas,
  121. handleSubmit: (values: any) => {
  122. createMessage.success('click search,values:' + JSON.stringify(values));
  123. },
  124. };
  125. },
  126. });
  127. </script>