combinationActivity.data.ts 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
  2. import { dateFormatter2 } from '@/utils/formatTime'
  3. // 表单校验
  4. export const rules = reactive({
  5. name: [required],
  6. totalLimitCount: [required],
  7. singleLimitCount: [required],
  8. startTime: [required],
  9. endTime: [required],
  10. userSize: [required],
  11. limitDuration: [required],
  12. virtualGroup: [required]
  13. })
  14. // CrudSchema https://doc.iocoder.cn/vue3/crud-schema/
  15. const crudSchemas = reactive<CrudSchema[]>([
  16. {
  17. label: '拼团名称',
  18. field: 'name',
  19. isSearch: true,
  20. isTable: false,
  21. form: {
  22. colProps: {
  23. span: 24
  24. }
  25. }
  26. },
  27. {
  28. label: '活动开始时间',
  29. field: 'startTime',
  30. formatter: dateFormatter2,
  31. isSearch: true,
  32. search: {
  33. component: 'DatePicker',
  34. componentProps: {
  35. valueFormat: 'YYYY-MM-DD',
  36. type: 'daterange'
  37. }
  38. },
  39. form: {
  40. component: 'DatePicker',
  41. componentProps: {
  42. type: 'date',
  43. valueFormat: 'x'
  44. }
  45. },
  46. table: {
  47. width: 120
  48. }
  49. },
  50. {
  51. label: '活动结束时间',
  52. field: 'endTime',
  53. formatter: dateFormatter2,
  54. isSearch: true,
  55. search: {
  56. component: 'DatePicker',
  57. componentProps: {
  58. valueFormat: 'YYYY-MM-DD',
  59. type: 'daterange'
  60. }
  61. },
  62. form: {
  63. component: 'DatePicker',
  64. componentProps: {
  65. type: 'date',
  66. valueFormat: 'x'
  67. }
  68. },
  69. table: {
  70. width: 120
  71. }
  72. },
  73. {
  74. label: '参与人数',
  75. field: 'userSize',
  76. isSearch: false,
  77. form: {
  78. component: 'InputNumber',
  79. labelMessage: '参与人数不能少于两人',
  80. value: 2
  81. }
  82. },
  83. {
  84. label: '限制时长',
  85. field: 'limitDuration',
  86. isSearch: false,
  87. isTable: false,
  88. form: {
  89. component: 'InputNumber',
  90. labelMessage: '限制时长(小时)',
  91. componentProps: {
  92. placeholder: '请输入限制时长(小时)'
  93. }
  94. }
  95. },
  96. {
  97. label: '总限购数量',
  98. field: 'totalLimitCount',
  99. isSearch: false,
  100. isTable: false,
  101. form: {
  102. component: 'InputNumber',
  103. value: 0
  104. }
  105. },
  106. {
  107. label: '单次限购数量',
  108. field: 'singleLimitCount',
  109. isSearch: false,
  110. isTable: false,
  111. form: {
  112. component: 'InputNumber',
  113. value: 0
  114. }
  115. },
  116. {
  117. label: '虚拟成团',
  118. field: 'virtualGroup',
  119. dictType: DICT_TYPE.INFRA_BOOLEAN_STRING,
  120. dictClass: 'boolean',
  121. isSearch: true,
  122. form: {
  123. component: 'Radio',
  124. value: false
  125. }
  126. },
  127. {
  128. label: '拼团产品',
  129. field: 'spuId',
  130. isSearch: false,
  131. form: {
  132. colProps: {
  133. span: 24
  134. }
  135. }
  136. }
  137. ])
  138. export const { allSchemas } = useCrudSchemas(crudSchemas)