name.jsx 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. /* eslint-disable no-unused-vars */
  2. import React, { useState, useLayoutEffect, useEffect, useRef } from 'react';
  3. import { storiesOf } from '@storybook/react';
  4. import { Button, Modal, TreeSelect, Row, Col, Avatar, Tabs, TabPane, Badge } from '@douyinfe/semi-ui';
  5. import {
  6. Form,
  7. useFormState,
  8. useFormApi,
  9. useFieldApi,
  10. useFieldState,
  11. withFormState,
  12. withFormApi,
  13. withField,
  14. ArrayField
  15. } from '../../index';
  16. import {
  17. UseFormApiDemo,
  18. UseFormStateDemo,
  19. UseFieldApiDemo,
  20. UseFieldStateDemo,
  21. WithFormStateDemo,
  22. WithFormApiDemo,
  23. ComponentUsingFormState,
  24. CustomStringify
  25. } from '../Hook/hookDemo';
  26. const { Input, Select, DatePicker, Switch, Slider, CheckboxGroup, Checkbox, RadioGroup, Radio, TimePicker } = Form;
  27. const NameDemo = () => {
  28. const style = { width: '90%' };
  29. const helpText = <span style={{ color: 'var(--semi-color-warning)' }}>密码强度:弱</span>;
  30. return (
  31. <Form extraTextPosition="middle">
  32. <Form.Input
  33. field="b"
  34. name='test'
  35. />
  36. <Form.Input
  37. field='name'
  38. label="名称"
  39. name='name'
  40. // initValue={'mikeya'}
  41. style={style}
  42. trigger='blur'
  43. rules={[
  44. { required: true, message: 'required error' },
  45. { type: 'string', message: 'type error' },
  46. { validator: (rule, value) => value === 'muji', message: 'not muji' }
  47. ]}
  48. />
  49. <Form.DatePicker field="date" name='date' label='日期' style={style} placeholder='请选择生效日期' />
  50. <Form.Select field="role" name='role' style={style} label='角色' placeholder='请选择你的角色'>
  51. <Form.Select.Option value="operate">运营</Form.Select.Option>
  52. <Form.Select.Option value="rd">开发</Form.Select.Option>
  53. <Form.Select.Option value="pm">产品</Form.Select.Option>
  54. <Form.Select.Option value="ued">设计</Form.Select.Option>
  55. </Form.Select>
  56. <Form.Select
  57. field="business"
  58. name='business'
  59. multiple
  60. style={style}
  61. placeholder='请选择业务线'
  62. label="业务线(多选)"
  63. >
  64. <Form.Select.Option value="dy">抖音</Form.Select.Option>
  65. <Form.Select.Option value="hootsoon">火山小视频</Form.Select.Option>
  66. <Form.Select.Option value="toutiao">今日头条</Form.Select.Option>
  67. </Form.Select>
  68. <Form.Cascader
  69. placeholder="请选择所在地区"
  70. field='area'
  71. name='area'
  72. label='地区(级联选择)'
  73. >
  74. </Form.Cascader>
  75. <Form.TreeSelect
  76. field="tree"
  77. name='tree'
  78. style={style}
  79. label='节点(树选择)'
  80. placeholder='请选择服务节点'
  81. filterTreeNode
  82. >
  83. </Form.TreeSelect>
  84. <Form.TimePicker
  85. field='time'
  86. name='time'
  87. helpText='原则上应当在 9:00 - 18:00 之间'
  88. label='时间选择'
  89. >
  90. </Form.TimePicker>
  91. <Form.AutoComplete
  92. field='typeData'
  93. label='类型选择'
  94. name='typeData'
  95. data={['1', '2', '3']}
  96. >
  97. </Form.AutoComplete>
  98. <Form.TagInput
  99. field='tags'
  100. label='tags'
  101. name='tags'
  102. />
  103. <Form.TextArea
  104. style={style}
  105. field='description'
  106. name='description'
  107. label='申请理由'
  108. placeholder='请填写申请资源理由'
  109. />
  110. <Form.CheckboxGroup
  111. field="type"
  112. name='anotherType'
  113. label='申请类型'
  114. initValue={['user', 'admin']}
  115. rules={[
  116. { required: true }
  117. ]}
  118. >
  119. <Form.Checkbox value="admin">管理员admin</Form.Checkbox>
  120. <Form.Checkbox value="user">用户user</Form.Checkbox>
  121. <Form.Checkbox value="guest">访客guest</Form.Checkbox>
  122. <Form.Checkbox value="root">根用户root</Form.Checkbox>
  123. </Form.CheckboxGroup>
  124. <Form.RadioGroup
  125. name='anotherSource'
  126. field="isMonopolize" label='是否独占资源' rules={[
  127. { type: 'boolean' },
  128. { required: true, message: '必须选择是否独占 ' }
  129. ]}>
  130. <Form.Radio value={true}>是</Form.Radio>
  131. <Form.Radio value={false}>否</Form.Radio>
  132. </Form.RadioGroup>
  133. <Form.InputNumber field='number' name='number' label='申请数量' initValue={20} style={style}/>
  134. <Form.Slider field="range" name='range' label='资源使用报警阈值(%)' initValue={10} style={{ width: '90%' }}/>
  135. <Form.Rating field="rating" name='rating' label='满意度(Rating)' initValue={2} style={{ width: '90%' }}/>
  136. <Form.Switch field='switch' name='switch' label='开关(Switch)'/>
  137. <Form.CheckboxGroup field="cardCheckbox" label='卡片选择' style={{ width: '90%' }} type='card' initValue={['1', '3']} direction={'horizontal'} aria-label="CheckboxGroup 示例">
  138. <Form.Checkbox value={'1'} disabled extra='Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统' style={{ width: 280 }}>
  139. 单选框标题
  140. </Form.Checkbox>
  141. <Form.Checkbox value={'2'} disabled extra='Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统' style={{ width: 280 }}>
  142. 单选框标题
  143. </Form.Checkbox>
  144. </Form.CheckboxGroup>
  145. <Form.RadioGroup field='buttonRadio' type='button' buttonSize='middle' defaultValue={1} aria-label="单选组合示例">
  146. <Radio value={1}>即时推送</Radio>
  147. <Radio value={2}>定时推送</Radio>
  148. <Radio value={3}>动态推送</Radio>
  149. </Form.RadioGroup>
  150. <Form.Checkbox value="false" field="agree" name='agree' useOutSideGroup={true} noLabel={true}>
  151. 我已阅读并清楚相关规定
  152. </Form.Checkbox>
  153. </Form>
  154. );
  155. };
  156. export { NameDemo };