discountActivity.data.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
  2. import { dateFormatter2 } from '@/utils/formatTime'
  3. // TODO @zhangshai:
  4. // 表单校验
  5. export const rules = reactive({
  6. spuId: [required],
  7. name: [required],
  8. startTime: [required],
  9. endTime: [required],
  10. discountType: [required]
  11. })
  12. // CrudSchema https://doc.iocoder.cn/vue3/crud-schema/
  13. const crudSchemas = reactive<CrudSchema[]>([
  14. {
  15. label: '活动名称',
  16. field: 'name',
  17. isSearch: true,
  18. form: {
  19. colProps: {
  20. span: 24
  21. }
  22. },
  23. table: {
  24. width: 120
  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: 'discountType',
  76. dictType: DICT_TYPE.PROMOTION_DISCOUNT_TYPE,
  77. dictClass: 'number',
  78. isSearch: true,
  79. form: {
  80. component: 'Radio',
  81. value: 1
  82. }
  83. },
  84. {
  85. label: '活动商品',
  86. field: 'spuId',
  87. isTable: true,
  88. isSearch: false,
  89. form: {
  90. colProps: {
  91. span: 24
  92. }
  93. },
  94. table: {
  95. width: 300
  96. }
  97. },
  98. {
  99. label: '备注',
  100. field: 'remark',
  101. isSearch: false,
  102. form: {
  103. component: 'Input',
  104. componentProps: {
  105. type: 'textarea',
  106. rows: 4
  107. },
  108. colProps: {
  109. span: 24
  110. }
  111. },
  112. table: {
  113. width: 300
  114. }
  115. }
  116. ])
  117. export const { allSchemas } = useCrudSchemas(crudSchemas)