rechargeActivityLinkDTO.tsx 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. import { Checkbox, DatePicker, Form, Input, InputNumber, Radio, Select, Space } from "antd";
  2. import React from "react";
  3. import { ACTICITYTHEME, DISPLAYTYPE } from "../../const";
  4. /**
  5. * 模板充值活动
  6. * @returns
  7. */
  8. const RechargeActivityLinkDTO: React.FC<BOOKLINK.BookLinkChildProps> = ({ restField, name, itemData }) => {
  9. return <>
  10. <Form.Item
  11. {...restField}
  12. name={[name, 'rechargeActivityLinkDTO', 'activityName']}
  13. label={<strong>活动名称</strong>}
  14. rules={[{ required: true, message: '请输入活动名称!' }]}
  15. >
  16. <Input placeholder="请输入活动名称" style={{ width: '100%' }} allowClear />
  17. </Form.Item>
  18. <Form.Item
  19. {...restField}
  20. name={[name, 'rechargeActivityLinkDTO', 'activityTheme']}
  21. label={<strong>活动主题</strong>}
  22. rules={[{ required: true, message: '请选择活动主题!' }]}
  23. >
  24. <Select
  25. showSearch
  26. placeholder="请选择活动主题"
  27. filterOption={(input, option) =>
  28. ((option?.label ?? '') as string).toLowerCase().includes(input.toLowerCase())
  29. }
  30. allowClear
  31. options={Object.keys(ACTICITYTHEME).map(key => ({ label: ACTICITYTHEME[key], value: key }))}
  32. />
  33. </Form.Item>
  34. <Form.Item
  35. label={<strong>充值档位</strong>}
  36. required
  37. >
  38. <Space>
  39. <Form.Item
  40. {...restField}
  41. name={[name, 'rechargeActivityLinkDTO', 'rechargeAmount']}
  42. rules={[{ required: true, message: '请输入价位!' }]}
  43. noStyle
  44. >
  45. <InputNumber addonBefore="价位" suffix="元" placeholder="请输入" style={{ width: '100%' }} />
  46. </Form.Item>
  47. <Form.Item
  48. {...restField}
  49. name={[name, 'rechargeActivityLinkDTO', 'giftAmount']}
  50. rules={[{ required: true, message: '请输入送券数量!' }]}
  51. noStyle
  52. >
  53. <InputNumber addonBefore="赠送" suffix="书卷" placeholder="请输入" style={{ width: '100%' }} />
  54. </Form.Item>
  55. </Space>
  56. </Form.Item>
  57. <Form.Item
  58. {...restField}
  59. name={[name, 'rechargeActivityLinkDTO', 'rechargeCount']}
  60. label={<strong>充值次数</strong>}
  61. rules={[{ required: true, message: '请选择充值次数!' }]}
  62. >
  63. <Select
  64. showSearch
  65. placeholder="请选择充值次数"
  66. filterOption={(input, option) =>
  67. ((option?.label ?? '') as string).toLowerCase().includes(input.toLowerCase())
  68. }
  69. allowClear
  70. options={[1, 2, 3].map(key => ({ label: key + '次', value: key }))}
  71. />
  72. </Form.Item>
  73. {itemData?.rechargeActivityLinkDTO?.rechargeCount === 1 && <Form.Item
  74. {...restField}
  75. name={[name, 'rechargeActivityLinkDTO', 'isDayRepeat']}
  76. label={<strong>是否每日充值活动</strong>}
  77. rules={[{ required: true, message: '请选择是否每日充值活动!' }]}
  78. >
  79. <Radio.Group
  80. optionType='button'
  81. buttonStyle="solid"
  82. options={[
  83. { value: 1, label: '是' },
  84. { value: 0, label: '否' }
  85. ]}
  86. />
  87. </Form.Item>}
  88. <Form.Item
  89. {...restField}
  90. name={[name, 'rechargeActivityLinkDTO', 'activityTime']}
  91. label={<strong>活动时间</strong>}
  92. rules={[{ required: true, message: '请选择活动时间!' }]}
  93. >
  94. <DatePicker.RangePicker />
  95. </Form.Item>
  96. <Form.Item
  97. {...restField}
  98. name={[name, 'rechargeActivityLinkDTO', 'timeIsShow']}
  99. label={<strong>活动时间状态</strong>}
  100. rules={[{ required: true, message: '请选择活动时间状态!' }]}
  101. >
  102. <Radio.Group
  103. optionType='button'
  104. buttonStyle="solid"
  105. options={[
  106. { value: 1, label: '开启' },
  107. { value: 0, label: '关闭' }
  108. ]}
  109. />
  110. </Form.Item>
  111. <Form.Item
  112. {...restField}
  113. name={[name, 'rechargeActivityLinkDTO', 'display']}
  114. label={<strong>活动展示位</strong>}
  115. >
  116. <Checkbox.Group options={Object.keys(DISPLAYTYPE).map(key => ({ label: DISPLAYTYPE[key], value: key }))} />
  117. </Form.Item>
  118. </>
  119. }
  120. export default React.memo(RechargeActivityLinkDTO);