@uiw/doc 4.13.1 → 4.13.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/web/CONTRIBUTORS.svg +6 -6
- package/web/asset-manifest.json +12 -12
- package/web/index.html +1 -1
- package/web/static/css/main.3daade01.css +10 -0
- package/web/static/css/main.3daade01.css.map +1 -0
- package/web/static/js/3561.1e57f31b.chunk.js +3 -0
- package/web/static/js/{3561.1c93f9e1.chunk.js.LICENSE.txt → 3561.1e57f31b.chunk.js.LICENSE.txt} +0 -0
- package/web/static/js/3561.1e57f31b.chunk.js.map +1 -0
- package/web/static/js/6566.511e95c6.chunk.js +2 -0
- package/web/static/js/6566.511e95c6.chunk.js.map +1 -0
- package/web/static/js/766.3b400825.chunk.js +2 -0
- package/web/static/js/766.3b400825.chunk.js.map +1 -0
- package/web/static/js/{main.ea3ecab3.js → main.9b988317.js} +2 -2
- package/web/static/js/main.9b988317.js.map +1 -0
- package/web/static/css/main.ed0f162d.css +0 -10
- package/web/static/css/main.ed0f162d.css.map +0 -1
- package/web/static/js/3561.1c93f9e1.chunk.js +0 -3
- package/web/static/js/3561.1c93f9e1.chunk.js.map +0 -1
- package/web/static/js/6566.3c91cbc8.chunk.js +0 -2
- package/web/static/js/6566.3c91cbc8.chunk.js.map +0 -1
- package/web/static/js/766.3a803d1a.chunk.js +0 -2
- package/web/static/js/766.3a803d1a.chunk.js.map +0 -1
- package/web/static/js/main.ea3ecab3.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6566],{36566:function(n,e,t){t.r(e),e.default="Form \u8868\u5355\n===\n\n[](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-form/file/README.md)\n[](https://www.npmjs.com/package/@uiw/react-form)\n[](https://npmjs.com/@uiw/react-form)\n\n\u7531\u8f93\u5165\u6846\u3001\u9009\u62e9\u5668\u3001\u5355\u9009\u6846\u3001\u591a\u9009\u6846\u7b49\u63a7\u4ef6\u7ec4\u6210\uff0c\u7528\u4ee5\u6536\u96c6\u3001\u6821\u9a8c\u3001\u63d0\u4ea4\u6570\u636e\u3002\n\n```jsx\nimport { Form, FormItem } from 'uiw';\n// or\nimport { Form, FormItem } from '@uiw/react-form';\n```\n\n### \u57fa\u672c\u7528\u6cd5\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\n\nimport React, { useState, useRef } from \"react\";\nimport ReactDOM from 'react-dom';\nimport { Form, Input, Row, Col, Slider, Button, Notify } from 'uiw';\n\nfunction Demo() {\n const form = useRef()\n\n const onSubmit = () => {\n form.current.onSubmit()\n }\n const resetForm = () => {\n form.current.resetForm()\n }\n const getFieldValues = () => {\n console.log('getFieldValues', form.current.getFieldValues())\n }\n\n return (\n <div>\n <Form\n ref={form}\n onChange={({ initial, current }) => {\n console.log('onChange', initial, current);\n }}\n onSubmit={({ initial, current }) => {\n if (current.name === initial.name) {\n Notify.error({\n title: '\u63d0\u4ea4\u5931\u8d25\uff01',\n description: `\u8868\u5355\u63d0\u4ea4\u5185\u5bb9\u4e3a\u7a7a\uff01`,\n });\n } else {\n Notify.success({\n title: '\u63d0\u4ea4\u6210\u529f\uff01',\n description: `\u59d3\u540d\u4e3a\uff1a${current.name}\uff0c\u63d0\u4ea4\u5b8c\u6210\uff0c\u5c06\u81ea\u52a8\u586b\u5145\u521d\u59cb\u5316\u503c\uff01`,\n });\n }\n }}\n fields={{\n name: {\n label: '\u59d3\u540d',\n children: <Input placeholder=\"\u8bf7\u8f93\u5165\u59d3\u540d\" />\n },\n }}\n >\n {({ fields, state, canSubmit }) => {\n return (\n <div>\n <Row>\n <Col style={{ maxWidth: 300 }}>{fields.name}</Col>\n </Row>\n <Row>\n <Col>\n <Button disabled={!canSubmit()} type=\"primary\" htmlType=\"submit\">\u63d0\u4ea4</Button>\n </Col>\n </Row>\n <Row>\n <Col>\n {JSON.stringify(state.current)}\n </Col>\n </Row>\n </div>\n )\n }}\n </Form>\n <Button type=\"primary\" onClick={onSubmit} >submit</Button>\n <Button type=\"primary\" onClick={resetForm}>resetForm</Button>\n <Button type=\"primary\" onClick={getFieldValues}>getValues</Button>\n </div>\n )\n}\nReactDOM.render(<Demo />, _mount_);\n```\n\n### \u81ea\u5b9a\u4e49\u6821\u9a8c\n\n\u4e00\u822c\u6821\u9a8c\u53ef\u4e0d\u9700\u5f15\u5165\u5916\u90e8\u5305\u89e3\u51b3\uff0c\u5982\u679c\u9047\u5230\u5927\u578b\u5de5\u7a0b\u8868\u5355\u6bd4\u8f83\u591a\u7684\u5730\u65b9\u63a8\u8350\u4f7f\u7528 [jquense/yup](https://github.com/jquense/yup)\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport ReactDOM from 'react-dom';\nimport { Form, Input, Notify, Checkbox, Switch, RadioGroup, Radio, Textarea, Row, Col, Button } from 'uiw';\n\nconst Demo = () => (\n <Form\n onSubmit={({initial, current}) => {\n const errorObj = {};\n if (current.userName.startsWith('u')) {\n errorObj.userName = `\u59d3\u540d ${current.userName} \u4e0d\u80fd\u4ee5 \u2018u\u2019 \u5f00\u5934`;\n }\n if (!current.checkboxOne) {\n errorObj.checkboxOne = '\u4e00\u4e2a\u591a\u9009\u6761\u4ef6 \u4e3a\u5fc5\u586b';\n }\n if (!current.terms) {\n errorObj.terms = '\u5fc5\u987b\u7edf\u4e00\u670d\u52a1\u6761\u6b3e';\n }\n if(Object.keys(errorObj).length > 0) {\n const err = new Error();\n err.filed = errorObj;\n throw err;\n }\n Notify.success({\n title: '\u63d0\u4ea4\u6210\u529f\uff01',\n description: `\u59d3\u540d\u4e3a\uff1a${current.userName}\uff0c\u63d0\u4ea4\u5b8c\u6210\uff0c\u5c06\u81ea\u52a8\u586b\u5145\u521d\u59cb\u5316\u503c\uff01`,\n });\n }}\n onSubmitError={(error) => {\n if (error.filed) {\n return { ...error.filed };\n }\n return null;\n }}\n fields={{\n userName: {\n initialValue: 'uiw',\n label: '\u59d3\u540d',\n children: <Input type=\"text\" />,\n help: '\u4ee5\u201cu\u201d\u5f00\u5934\u7684\u540d\u5b57\u5c06\u5728\u6b64\u5904\u663e\u793a\u9519\u8bef\u4fe1\u606f'\n },\n age: {\n initialValue: '9',\n label: '\u5e74\u9f84',\n children: <Input type=\"number\" />\n },\n checkbox: {\n initialValue: ['\u56db\u5ddd\u83dc'],\n label: '\u9009\u62e9\u4f60\u60f3\u5403\u7684\u83dc',\n children: (\n <Checkbox.Group>\n <div>\u83dc\u7cfb</div>\n <Checkbox value=\"\u56db\u5ddd\u83dc\">\u56db\u5ddd\u83dc</Checkbox>\n <Checkbox value=\"\u6e56\u5317\u83dc\">\u6e56\u5317\u83dc</Checkbox>\n <Checkbox value=\"\u897f\u5317\u83dc\">\u897f\u5317\u83dc</Checkbox>\n <Checkbox value=\"\u65b0\u7586\u83dc\">\u65b0\u7586\u83dc</Checkbox>\n <Checkbox value=\"\u4e1c\u5317\u83dc\">\u4e1c\u5317\u83dc</Checkbox>\n <div style={{ marginTop: 10 }}>\u5bb6\u5e38\u83dc</div>\n <Checkbox value=\"\u7ea2\u70e7\u6b66\u660c\u9c7c\">\u7ea2\u70e7\u6b66\u660c\u9c7c</Checkbox>\n <Checkbox value=\"\u9ebb\u5a46\u8c46\u8150\">\u9ebb\u5a46\u8c46\u8150</Checkbox>\n <Checkbox value=\"\u5317\u4eac\u70e4\u9e2d\">\u5317\u4eac\u70e4\u9e2d</Checkbox>\n </Checkbox.Group>\n )\n },\n checkboxOne: {\n inline: true,\n label: '\u4e00\u4e2a\u591a\u9009\u6761\u4ef6',\n children: <Checkbox value=\"1\">\u56db\u5ddd\u83dc</Checkbox>\n },\n switch: {\n inline: true,\n initialValue: true,\n label: '\u5f00\u542f',\n children: <Switch size=\"small\" />\n },\n radioGroup: {\n inline: true,\n initialValue: '\u7537',\n label: '\u5355\u9009',\n children: (\n <RadioGroup name=\"other\">\n <Radio value=\"\u7537\">\u7537</Radio>\n <Radio value=\"\u5973\">\u5973</Radio>\n <Radio value=\"\u4eba\u5996\" disabled>\u4eba\u5996</Radio>\n <Radio value=\"\u672a\u77e5\">\u672a\u77e5</Radio>\n </RadioGroup>\n )\n },\n textarea: {\n initialValue: '',\n label: '\u591a\u884c\u6587\u672c\u8f93\u5165\u6846',\n children: <Textarea placeholder=\"\u8bf7\u8f93\u5165\u5185\u5bb9\" />\n },\n terms: {\n validator: (currentValue) => {\n return !currentValue ? '\u5fc5\u987b\u7edf\u4e00\u670d\u52a1\u6761\u6b3e' : null;\n },\n style: { marginBottom: 0 },\n children: <Checkbox value=\"1\">\u5df2\u9605\u8bfb\u5e76\u540c\u610f<a href=\"#\">\u670d\u52a1\u6761\u6b3e</a></Checkbox>\n }\n }}\n >\n {({ fields, state, canSubmit, resetForm }) => {\n console.log('fields:--\x3e', state);\n return (\n <div style={{ maxWidth: 500 }}>\n <Row gutter={10}>\n <Col>{fields.userName}</Col>\n <Col>{fields.age}</Col>\n </Row>\n <Row gutter={10}>\n <Col>{fields.checkbox}</Col>\n <Col>{fields.checkboxOne}</Col>\n </Row>\n <Row gutter={10}>\n <Col>{fields.radioGroup}</Col>\n </Row>\n <Row gutter={10}>\n <Col>{fields.switch}</Col>\n </Row>\n <Row gutter={10}>\n <Col>{fields.textarea}</Col>\n </Row>\n <Row gutter={10}>\n <Col style={{ padding: '5px 0 10px 0' }}>\n {fields.terms}\n </Col>\n </Row>\n <Row gutter={10}>\n <Col fixed>\n <Button disabled={!canSubmit()} type=\"primary\" htmlType=\"submit\">\u63d0\u4ea4</Button>\n <Button type=\"light\" onClick={resetForm}>\u91cd\u7f6e\u8868\u5355</Button>\n </Col>\n </Row>\n <Row>\n <Col>\n <pre style={{ padding: '10px 0 0 10px' }}>\n {JSON.stringify(state.current, null, 2)}\n </pre>\n </Col>\n </Row>\n </div>\n )\n }}\n </Form>\n)\nReactDOM.render(<Demo />, _mount_);\n```\n\n### \u6c34\u5e73\u767b\u5f55\u680f\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport ReactDOM from 'react-dom';\nimport { Form, Input, Row, Col, Notify, Button } from 'uiw';\n\nconst Demo = () => (\n <div>\n <Form\n onSubmit={({initial, current}) => {\n const errorObj = {};\n if (!current.username) {\n errorObj.username = '\u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a\uff01';\n }\n if (!current.password) {\n errorObj.password = '\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a\uff01';\n }\n if(Object.keys(errorObj).length > 0) {\n const err = new Error();\n err.filed = errorObj;\n Notify.error({ title: '\u63d0\u4ea4\u5931\u8d25\uff01', description: '\u8bf7\u786e\u8ba4\u63d0\u4ea4\u8868\u5355\u662f\u5426\u6b63\u786e\uff01' });\n throw err;\n }\n console.log('--\x3e>', initial, current);\n Notify.success({ title: '\u63d0\u4ea4\u6210\u529f\uff01', description: '\u606d\u559c\u4f60\u767b\u5f55\u6210\u529f\uff01' });\n }}\n onSubmitError={(error) => {\n if (error.filed) {\n return { ...error.filed };\n }\n return null;\n }}\n fields={{\n username: {\n labelClassName: 'fieldLabel',\n labelFor: 'username-inline',\n children: <Input preIcon=\"user\" id=\"username-inline\" />\n },\n password: {\n labelClassName: 'fieldLabel',\n labelFor: 'password-inline',\n children: <Input preIcon=\"lock\" id=\"password-inline\" type=\"password\" />\n },\n }}\n >\n {({ fields, state, canSubmit, resetForm }) => {\n console.log('fields:', state);\n return (\n <div>\n <Row gutter={10}>\n <Col fixed>{fields.username}</Col>\n <Col fixed>{fields.password}</Col>\n </Row>\n <Row gutter={10}>\n <Col>\n <Button disabled={!canSubmit()} type=\"primary\" htmlType=\"submit\">\u63d0\u4ea4</Button>\n <Button type=\"danger\" onClick={resetForm}>\u91cd\u7f6e\u8868\u5355</Button>\n </Col>\n </Row>\n </div>\n )\n }}\n </Form>\n </div>\n);\nReactDOM.render(<Demo />, _mount_);\n```\n\n## \u767b\u5f55\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport ReactDOM from 'react-dom';\nimport { Form, Input, Row, Col, Checkbox, Notify, Button } from 'uiw';\n\nconst Demo = () => (\n <div>\n <Form\n onSubmit={({initial, current}) => {\n console.log('--\x3e>', initial, current);\n }}\n fields={{\n username: {\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n labelFor: 'username',\n children: <Input preIcon=\"user\" id=\"username\" />\n },\n password: {\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n labelFor: 'password',\n children: <Input preIcon=\"lock\" id=\"password\" type=\"password\" />\n },\n terms: {\n validator: (currentValue) => !currentValue ? '\u5fc5\u987b\u7edf\u4e00\u670d\u52a1\u6761\u6b3e' : null,\n children: <Checkbox value=\"1\">\u5df2\u9605\u8bfb\u5e76\u540c\u610f</Checkbox>\n }\n }}\n >\n {({ fields, state, canSubmit }) => {\n console.log('fields:', state);\n return (\n <div>\n <Row>\n <Col fixed>{fields.username}</Col>\n </Row>\n <Row>\n <Col fixed>{fields.password}</Col>\n </Row>\n <Row>\n <Col fixed align=\"middle\">{fields.terms}</Col>\n <Col fixed style={{ marginTop: -4 }}><a href=\"#\">\u670d\u52a1\u6761\u6b3e</a></Col>\n </Row>\n <Row>\n <Col fixed>\n <Button disabled={!canSubmit()} type=\"primary\" htmlType=\"submit\">\u63d0\u4ea4</Button>\n </Col>\n </Row>\n </div>\n )\n }}\n </Form>\n </div>\n)\nReactDOM.render(<Demo />, _mount_);\n```\n\n### \u8868\u5355\u63d0\u4ea4\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport ReactDOM from 'react-dom';\nimport { Form, Input, Select, Row, Col, Button } from 'uiw';\n\nconst Demo = () => (\n <div>\n <Form\n onSubmit={({initial, current}) => {\n console.log('--\x3e>', initial, current);\n }}\n fields={{\n firstName: {\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n inline: true,\n label: '\u59d3\u6c0f',\n children: <Input />\n },\n lastName: {\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n initialValue: '\u5148\u751f',\n inline: true,\n label: '\u540d\u5b57',\n children: <Input />\n },\n email: {\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n validator: (currentValue) => {\n return currentValue && currentValue.length < 2 ? 'Password must be 8+ characters' : null;\n },\n inline: true,\n label: 'Email',\n children: <Input />\n },\n select: {\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n inline: true,\n label: '\u9009\u62e9\u5668',\n children: (\n <Select>\n <Select.Option>Choose an item...</Select.Option>\n <Select.Option value=\"1\">One</Select.Option>\n <Select.Option value=\"2\">Two</Select.Option>\n <Select.Option value=\"3\">Three</Select.Option>\n <Select.Option value=\"4\">Four</Select.Option>\n </Select>\n ),\n },\n }}\n >\n {({ fields, state, canSubmit }) => {\n console.log('fields:', state);\n return (\n <div>\n <Row gutter={10} style={{ marginBottom: 10 }}>\n <Col>{fields.firstName}</Col>\n <Col>{fields.lastName}</Col>\n </Row>\n <Row gutter={10}>\n <Col>{fields.email}</Col>\n <Col>{fields.select}</Col>\n </Row>\n <Row gutter={10}>\n <Col />\n <Col fixed align=\"bottom\"><Button disabled={!canSubmit()} type=\"primary\" htmlType=\"submit\">\u63d0\u4ea4</Button></Col>\n </Row>\n </div>\n )\n }}\n </Form>\n </div>\n)\nReactDOM.render(<Demo />, _mount_);\n```\n\n\n### \u81ea\u5b9a\u4e49\u63a7\u4ef6\u5e94\u7528\n\n\u4e0b\u9762\u5b9e\u4f8b\u662f\u5728 [`<Form />`](#/components/form) \u8868\u5355\u7ec4\u4ef6\u4e2d\uff0c\u5e94\u7528\u81ea\u5b9a\u4e49 `<CustomSelect />` \u63a7\u4ef6\u7ec4\u4ef6\u3002\n\n> \u26a0\ufe0f \u6ce8\u610f\uff0c\u81ea\u5b9a\u4e49\u63a7\u4ef6\u9700\u8981\u4e24\u4e2a\u5fc5\u8981\u7684 `props` \u53c2\u6570\uff0c`value` \u548c `onChange`\n\x3c!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;--\x3e\n\n- `value` \u7528\u4e8e\u503c\u4f20\u9012\uff0c\n- `onChange(value)` \u7528\u4e8e\u503c\u53d8\u66f4\u9700\u8981\u6267\u884c\u7684\u56de\u8c03\u51fd\u6570\uff0c\u56de\u8c03\u51fd\u6570\u7b2c\u4e00\u4e2a\u53c2\u6570\u5fc5\u987b\u662f `value`\u3002\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Form, Row, Col, Dropdown, Menu, Icon, Button, Notify } from 'uiw';\n\n// \u81ea\u5b9a\u4e49\u7ec4\u4ef6\nfunction CustomSelect(props) {\n const { option = [], onChange } = props;\n const [value, setValue] = React.useState(props.value);\n const [isOpen, setIsOpen] = React.useState(false);\n\n React.useEffect(() => {\n if (value !== props.value) {\n setValue(props.value);\n }\n }, [props.value]);\n const label = option.find(item => value === item.value);\n return (\n <Dropdown\n trigger=\"click\"\n onVisibleChange={(open) => setIsOpen(open)}\n isOpen={isOpen}\n menu={\n <Menu bordered style={{ minWidth: 120 }}>\n {option.map((item, idx) => (\n <Menu.Item active={value === item.value} key={idx} text={item.label}\n onClick={() => {\n setValue(item.value);\n setIsOpen(false)\n onChange && onChange(item.value);\n }}\n />\n ))}\n </Menu>\n }\n >\n <Button\n style={{\n boxShadow: 'inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1)'\n }}\n type=\"link\"\n >\n {label.label}<Icon type={isOpen ? 'up' : 'down'} />\n </Button>\n </Dropdown>\n );\n}\n\n// \u81ea\u5b9a\u4e49\u7ec4\u4ef6\u5e94\u7528\u5b9e\u4f8b\nconst Demo = () => (\n <div>\n <Form\n onSubmitError={(error) => {\n if (error.filed) {\n return { ...error.filed };\n }\n return null;\n }}\n onSubmit={({initial, current}) => {\n console.log('~~~', current);\n const errorObj = {};\n if (!current.select) {\n errorObj.select = '\u5185\u5bb9\u4e3a\u7a7a\uff0c\u8bf7\u8f93\u5165\u5185\u5bb9';\n }\n if(Object.keys(errorObj).length > 0) {\n const err = new Error();\n err.filed = errorObj;\n Notify.error({ title: '\u63d0\u4ea4\u5931\u8d25\uff01', description: '\u8bf7\u786e\u8ba4\u63d0\u4ea4\u8868\u5355\u662f\u5426\u6b63\u786e\uff01' });\n throw err;\n }\n Notify.success({\n title: '\u63d0\u4ea4\u6210\u529f\uff01',\n description: `\u8868\u5355\u63d0\u4ea4\u6210\u529f\uff0c\u5185\u5bb9\u4e3a\uff1a${current.select}\uff0c\u5c06\u81ea\u52a8\u586b\u5145\u521d\u59cb\u5316\u503c\uff01`,\n });\n }}\n fields={{\n select: {\n initialValue: 0,\n children: (\n <CustomSelect option={[\n { label: '\u8bf7\u9009\u62e9', value: 0 },\n { label: '\u7ecf\u6d4e\u8231', value: 1 },\n { label: '\u8c6a\u534e\u7ecf\u6d4e\u8231', value: 2 },\n { label: '\u5546\u52a1\u8231', value: 3 },\n { label: '\u5934\u7b49\u8231', value: 4 },\n ]} />\n )\n },\n }}\n >\n {({ fields, state, canSubmit }) => {\n return (\n <div>\n <Row>\n <Col style={{ maxWidth: 300 }}>{fields.select}</Col>\n </Row>\n <Row>\n <Col fixed>\n <Button disabled={!canSubmit()} type=\"primary\" htmlType=\"submit\">\u63d0\u4ea4</Button>\n </Col>\n </Row>\n </div>\n )\n }}\n </Form>\n </div>\n)\nReactDOM.render(<Demo />, _mount_);\n```\n\n### FormItem \u7ad6\u6392\n\n\u5bf9\u7ec4\u4ef6 `FormItem` \u7ad6\u6392\u5c55\u793a\u793a\u4f8b\u3002\n\n> \u26a0\ufe0f \u6ce8\u610f\uff1a`FormItem` \u7ec4\u4ef6\u53ea\u5728 `Form` \u7ec4\u4ef6\u4e2d\u4f7f\u7528\uff0c\u5728 `@v4.10.4+` \u4ee5\u4e0a\u7248\u672c\u53ef\u4ee5\u5f53\u666e\u901a `form` \u4f7f\u7528\u3002\n\x3c!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;--\x3e\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Form, FormItem, Button } from 'uiw';\n\nconst Demo = () => {\n const [formData, setFormData] = React.useState({});\n const handleSubmit = (_, e) => {\n e && e.preventDefault();\n const fData = new FormData(e.target);\n const data = {};\n fData.forEach((value, key) => { data[key] = value; });\n setFormData(data);\n }\n return (\n <Form onSubmit={handleSubmit} onReset={() => setFormData({})}>\n <FormItem\n label=\"\u53ef\u9009\u5b57\u6bb5\"\n labelFor=\"item-basic-input\"\n help={<span>\u5728\u4e0a\u9762\u7684\u5b57\u6bb5\u4e2d\u8f93\u5165\u4e00\u4e2a\u503c</span>}\n >\n <Input id=\"item-basic-input\" name=\"basic\" type=\"text\"/>\n </FormItem>\n <FormItem\n label=\"\u7528\u6237\u540d\"\n labelFor=\"item-username-input\"\n help={(!formData.username || formData.username.length < 8) ? \"\u7528\u6237\u540d\u957f\u5ea6\u81f3\u5c11\u4e3a8\u4e2a\u5b57\u7b26\u4e32\u3002\" : \"\u7528\u6237\u540d\u6b63\u786e \u221a \"}\n hasError={(!formData.username || formData.username.length < 8)}\n >\n <Input id=\"item-username-input\" name=\"username\" type=\"text\"/>\n </FormItem>\n <FormItem>\n <Button type=\"success\" htmlType=\"submit\"> Submit </Button>\n <Button type=\"light\" htmlType=\"reset\"> Reset </Button>\n </FormItem>\n <pre>\n {JSON.stringify(formData, null, 2)}\n </pre>\n </Form>\n );\n}\nReactDOM.render(<Demo />, _mount_);\n```\n\n### FormItem \u6a2a\u6392\n\n\u5bf9\u7ec4\u4ef6 `FormItem` \u6a2a\u6392\u5c55\u793a\u793a\u4f8b\u3002\n\n> \u26a0\ufe0f \u6ce8\u610f\uff1a`FormItem` \u7ec4\u4ef6\u53ea\u5728 `Form` \u7ec4\u4ef6\u4e2d\u4f7f\u7528\uff0c\u5728 `@v4.10.4+` \u4ee5\u4e0a\u7248\u672c\u53ef\u4ee5\u5f53\u666e\u901a `form` \u4f7f\u7528\u3002\n\x3c!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;--\x3e\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport ReactDOM from 'react-dom';\nimport { Form, FormItem } from 'uiw';\n\nconst Demo = () => (\n <Form>\n <FormItem\n inline={true}\n label=\"\u53ef\u9009\u5b57\u6bb5\"\n labelFor=\"basic-input-inline\"\n help={<span>\u5728\u4e0a\u9762\u7684\u5b57\u6bb5\u4e2d\u8f93\u5165\u4e00\u4e2a\u503c</span>}\n onChange={() => {\n console.log('TEST::');\n }}\n >\n <Input id=\"basic-input-inline\" name=\"basic\" type=\"text\"/>\n </FormItem>\n <FormItem\n inline={true}\n label=\"\u7528\u6237\u540d\"\n labelFor=\"username-input-inline\"\n labelClassName=\"username\"\n help=\"\u7528\u6237\u540d\u957f\u5ea6\u81f3\u5c11\u4e3a8\u4e2a\u5b57\u7b26\u4e32\u3002\"\n hasError={true}\n >\n <Input id=\"username-input-inline\" name=\"username\" type=\"text\"/>\n </FormItem>\n </Form>\n)\nReactDOM.render(<Demo />, _mount_);\n```\n\n## Form\n\n| \u53c2\u6570 | \u8bf4\u660e | \u7c7b\u578b | \u9ed8\u8ba4\u503c |\n|--------- |-------- |--------- |-------- |\n| fields | \u8bbe\u7f6e\u5b57\u6bb5 | object | - |\n| children | \u56de\u8c03 {`fields`, `state`, `canSubmit`, `resetForm`} | function | - |\n| onSubmit | \u63d0\u4ea4\u8868\u5355\u65f6\u8c03\u7528 | `(state: FormSubmitProps, event: React.FormEvent) => any` | - |\n| afterSubmit `@3.0.0+` | \u63d0\u4ea4\u56de\u8c03 {`initial`, `current`} | function({ initial, current }) | - |\n| onChange | \u8868\u5355\u53d1\u751f\u6539\u53d8\u56de\u8c03\u51fd\u6570 {`initial`, `current`} | function({ initial, current }) | - |\n| onSubmitError | \u8c03\u7528 `onSubmit` \u629b\u51fa\u7684\u4efb\u4f55\u9519\u8bef\u3002\u4ece\u5b57\u6bb5\u540d\u79f0\u8fd4\u56de\u5bf9\u8c61\u6620\u5c04\u3002 | function | - |\n| resetOnSubmit | \u5728 `onSubmit` \u6210\u529f\u540e\u5c06\u8868\u5355\u91cd\u7f6e\u4e3a\u5176\u521d\u59cb\u72b6\u6001\u3002| bool | `true` |\n\n```js\n// => fields props\n{\n firstName: {\n initialValue: '\u738b',\n inline: true,\n label: '\u59d3',\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n // \u9a8c\u8bc1\uff0c\u901a\u8fc7 `canSubmit()` \u65b9\u6cd5\u83b7\u5f97\uff0c\u63d0\u4ea4\u6309\u94ae\u662f\u5426\u88ab\u7981\u7528\n validator: (currentValue) => {},\n help: '\u5e2e\u52a9\u63d0\u793a\u4fe1\u606f\uff01',\n children: <Input type=\"number\" />\n },\n}\n```\n\n## FormItem\n\n| \u53c2\u6570 | \u8bf4\u660e | \u7c7b\u578b | \u9ed8\u8ba4\u503c |\n|--------- |-------- |--------- |-------- |\n| label | \u8868\u5355\u6807\u9898\u5c55\u793a | string | - |\n| labelClassName | \u8868\u5355\u6807\u9898\u6837\u5f0f\u540d\u79f0 | string | - |\n| labelStyle | \u8868\u5355\u6807\u9898\u6837\u5f0f | object | - |\n| labelFor | \u5217\u7684\u5bbd\u5ea6\u76f8\u5bf9\u4e8e\u540c\u4e00\u7f51\u683c\u4e2d\u5176\u4ed6\u5217\u7684\u6bd4\u7387 | number | - |\n| help | \u63d0\u793a\u4fe1\u606f | ReactNode | - |\n| hasError | \u5982\u679c\u4e3atrue\uff0c\u5219\u5e94\u7528\u9519\u8befCSS\u3002\u8f6c\u52a8\u8fb9\u6846\u5e76\u5e2e\u52a9\u6587\u5b57\u53d8\u7ea2\u3002 | number | - |\n"}}]);
|
|
2
|
-
//# sourceMappingURL=6566.3c91cbc8.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/js/6566.3c91cbc8.chunk.js","mappings":"gHAAA","sources":["../../packages/react-form/README.md"],"sourcesContent":["export default \"Form 表单\\n===\\n\\n[](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-form/file/README.md)\\n[](https://www.npmjs.com/package/@uiw/react-form)\\n[](https://npmjs.com/@uiw/react-form)\\n\\n由输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据。\\n\\n```jsx\\nimport { Form, FormItem } from 'uiw';\\n// or\\nimport { Form, FormItem } from '@uiw/react-form';\\n```\\n\\n### 基本用法\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\n\\nimport React, { useState, useRef } from \\\"react\\\";\\nimport ReactDOM from 'react-dom';\\nimport { Form, Input, Row, Col, Slider, Button, Notify } from 'uiw';\\n\\nfunction Demo() {\\n const form = useRef()\\n\\n const onSubmit = () => {\\n form.current.onSubmit()\\n }\\n const resetForm = () => {\\n form.current.resetForm()\\n }\\n const getFieldValues = () => {\\n console.log('getFieldValues', form.current.getFieldValues())\\n }\\n\\n return (\\n <div>\\n <Form\\n ref={form}\\n onChange={({ initial, current }) => {\\n console.log('onChange', initial, current);\\n }}\\n onSubmit={({ initial, current }) => {\\n if (current.name === initial.name) {\\n Notify.error({\\n title: '提交失败!',\\n description: `表单提交内容为空!`,\\n });\\n } else {\\n Notify.success({\\n title: '提交成功!',\\n description: `姓名为:${current.name},提交完成,将自动填充初始化值!`,\\n });\\n }\\n }}\\n fields={{\\n name: {\\n label: '姓名',\\n children: <Input placeholder=\\\"请输入姓名\\\" />\\n },\\n }}\\n >\\n {({ fields, state, canSubmit }) => {\\n return (\\n <div>\\n <Row>\\n <Col style={{ maxWidth: 300 }}>{fields.name}</Col>\\n </Row>\\n <Row>\\n <Col>\\n <Button disabled={!canSubmit()} type=\\\"primary\\\" htmlType=\\\"submit\\\">提交</Button>\\n </Col>\\n </Row>\\n <Row>\\n <Col>\\n {JSON.stringify(state.current)}\\n </Col>\\n </Row>\\n </div>\\n )\\n }}\\n </Form>\\n <Button type=\\\"primary\\\" onClick={onSubmit} >submit</Button>\\n <Button type=\\\"primary\\\" onClick={resetForm}>resetForm</Button>\\n <Button type=\\\"primary\\\" onClick={getFieldValues}>getValues</Button>\\n </div>\\n )\\n}\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n### 自定义校验\\n\\n一般校验可不需引入外部包解决,如果遇到大型工程表单比较多的地方推荐使用 [jquense/yup](https://github.com/jquense/yup)\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport ReactDOM from 'react-dom';\\nimport { Form, Input, Notify, Checkbox, Switch, RadioGroup, Radio, Textarea, Row, Col, Button } from 'uiw';\\n\\nconst Demo = () => (\\n <Form\\n onSubmit={({initial, current}) => {\\n const errorObj = {};\\n if (current.userName.startsWith('u')) {\\n errorObj.userName = `姓名 ${current.userName} 不能以 ‘u’ 开头`;\\n }\\n if (!current.checkboxOne) {\\n errorObj.checkboxOne = '一个多选条件 为必填';\\n }\\n if (!current.terms) {\\n errorObj.terms = '必须统一服务条款';\\n }\\n if(Object.keys(errorObj).length > 0) {\\n const err = new Error();\\n err.filed = errorObj;\\n throw err;\\n }\\n Notify.success({\\n title: '提交成功!',\\n description: `姓名为:${current.userName},提交完成,将自动填充初始化值!`,\\n });\\n }}\\n onSubmitError={(error) => {\\n if (error.filed) {\\n return { ...error.filed };\\n }\\n return null;\\n }}\\n fields={{\\n userName: {\\n initialValue: 'uiw',\\n label: '姓名',\\n children: <Input type=\\\"text\\\" />,\\n help: '以“u”开头的名字将在此处显示错误信息'\\n },\\n age: {\\n initialValue: '9',\\n label: '年龄',\\n children: <Input type=\\\"number\\\" />\\n },\\n checkbox: {\\n initialValue: ['四川菜'],\\n label: '选择你想吃的菜',\\n children: (\\n <Checkbox.Group>\\n <div>菜系</div>\\n <Checkbox value=\\\"四川菜\\\">四川菜</Checkbox>\\n <Checkbox value=\\\"湖北菜\\\">湖北菜</Checkbox>\\n <Checkbox value=\\\"西北菜\\\">西北菜</Checkbox>\\n <Checkbox value=\\\"新疆菜\\\">新疆菜</Checkbox>\\n <Checkbox value=\\\"东北菜\\\">东北菜</Checkbox>\\n <div style={{ marginTop: 10 }}>家常菜</div>\\n <Checkbox value=\\\"红烧武昌鱼\\\">红烧武昌鱼</Checkbox>\\n <Checkbox value=\\\"麻婆豆腐\\\">麻婆豆腐</Checkbox>\\n <Checkbox value=\\\"北京烤鸭\\\">北京烤鸭</Checkbox>\\n </Checkbox.Group>\\n )\\n },\\n checkboxOne: {\\n inline: true,\\n label: '一个多选条件',\\n children: <Checkbox value=\\\"1\\\">四川菜</Checkbox>\\n },\\n switch: {\\n inline: true,\\n initialValue: true,\\n label: '开启',\\n children: <Switch size=\\\"small\\\" />\\n },\\n radioGroup: {\\n inline: true,\\n initialValue: '男',\\n label: '单选',\\n children: (\\n <RadioGroup name=\\\"other\\\">\\n <Radio value=\\\"男\\\">男</Radio>\\n <Radio value=\\\"女\\\">女</Radio>\\n <Radio value=\\\"人妖\\\" disabled>人妖</Radio>\\n <Radio value=\\\"未知\\\">未知</Radio>\\n </RadioGroup>\\n )\\n },\\n textarea: {\\n initialValue: '',\\n label: '多行文本输入框',\\n children: <Textarea placeholder=\\\"请输入内容\\\" />\\n },\\n terms: {\\n validator: (currentValue) => {\\n return !currentValue ? '必须统一服务条款' : null;\\n },\\n style: { marginBottom: 0 },\\n children: <Checkbox value=\\\"1\\\">已阅读并同意<a href=\\\"#\\\">服务条款</a></Checkbox>\\n }\\n }}\\n >\\n {({ fields, state, canSubmit, resetForm }) => {\\n console.log('fields:-->', state);\\n return (\\n <div style={{ maxWidth: 500 }}>\\n <Row gutter={10}>\\n <Col>{fields.userName}</Col>\\n <Col>{fields.age}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col>{fields.checkbox}</Col>\\n <Col>{fields.checkboxOne}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col>{fields.radioGroup}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col>{fields.switch}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col>{fields.textarea}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col style={{ padding: '5px 0 10px 0' }}>\\n {fields.terms}\\n </Col>\\n </Row>\\n <Row gutter={10}>\\n <Col fixed>\\n <Button disabled={!canSubmit()} type=\\\"primary\\\" htmlType=\\\"submit\\\">提交</Button>\\n <Button type=\\\"light\\\" onClick={resetForm}>重置表单</Button>\\n </Col>\\n </Row>\\n <Row>\\n <Col>\\n <pre style={{ padding: '10px 0 0 10px' }}>\\n {JSON.stringify(state.current, null, 2)}\\n </pre>\\n </Col>\\n </Row>\\n </div>\\n )\\n }}\\n </Form>\\n)\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n### 水平登录栏\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport ReactDOM from 'react-dom';\\nimport { Form, Input, Row, Col, Notify, Button } from 'uiw';\\n\\nconst Demo = () => (\\n <div>\\n <Form\\n onSubmit={({initial, current}) => {\\n const errorObj = {};\\n if (!current.username) {\\n errorObj.username = '用户名不能为空!';\\n }\\n if (!current.password) {\\n errorObj.password = '密码不能为空!';\\n }\\n if(Object.keys(errorObj).length > 0) {\\n const err = new Error();\\n err.filed = errorObj;\\n Notify.error({ title: '提交失败!', description: '请确认提交表单是否正确!' });\\n throw err;\\n }\\n console.log('-->>', initial, current);\\n Notify.success({ title: '提交成功!', description: '恭喜你登录成功!' });\\n }}\\n onSubmitError={(error) => {\\n if (error.filed) {\\n return { ...error.filed };\\n }\\n return null;\\n }}\\n fields={{\\n username: {\\n labelClassName: 'fieldLabel',\\n labelFor: 'username-inline',\\n children: <Input preIcon=\\\"user\\\" id=\\\"username-inline\\\" />\\n },\\n password: {\\n labelClassName: 'fieldLabel',\\n labelFor: 'password-inline',\\n children: <Input preIcon=\\\"lock\\\" id=\\\"password-inline\\\" type=\\\"password\\\" />\\n },\\n }}\\n >\\n {({ fields, state, canSubmit, resetForm }) => {\\n console.log('fields:', state);\\n return (\\n <div>\\n <Row gutter={10}>\\n <Col fixed>{fields.username}</Col>\\n <Col fixed>{fields.password}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col>\\n <Button disabled={!canSubmit()} type=\\\"primary\\\" htmlType=\\\"submit\\\">提交</Button>\\n <Button type=\\\"danger\\\" onClick={resetForm}>重置表单</Button>\\n </Col>\\n </Row>\\n </div>\\n )\\n }}\\n </Form>\\n </div>\\n);\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n## 登录\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport ReactDOM from 'react-dom';\\nimport { Form, Input, Row, Col, Checkbox, Notify, Button } from 'uiw';\\n\\nconst Demo = () => (\\n <div>\\n <Form\\n onSubmit={({initial, current}) => {\\n console.log('-->>', initial, current);\\n }}\\n fields={{\\n username: {\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n labelFor: 'username',\\n children: <Input preIcon=\\\"user\\\" id=\\\"username\\\" />\\n },\\n password: {\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n labelFor: 'password',\\n children: <Input preIcon=\\\"lock\\\" id=\\\"password\\\" type=\\\"password\\\" />\\n },\\n terms: {\\n validator: (currentValue) => !currentValue ? '必须统一服务条款' : null,\\n children: <Checkbox value=\\\"1\\\">已阅读并同意</Checkbox>\\n }\\n }}\\n >\\n {({ fields, state, canSubmit }) => {\\n console.log('fields:', state);\\n return (\\n <div>\\n <Row>\\n <Col fixed>{fields.username}</Col>\\n </Row>\\n <Row>\\n <Col fixed>{fields.password}</Col>\\n </Row>\\n <Row>\\n <Col fixed align=\\\"middle\\\">{fields.terms}</Col>\\n <Col fixed style={{ marginTop: -4 }}><a href=\\\"#\\\">服务条款</a></Col>\\n </Row>\\n <Row>\\n <Col fixed>\\n <Button disabled={!canSubmit()} type=\\\"primary\\\" htmlType=\\\"submit\\\">提交</Button>\\n </Col>\\n </Row>\\n </div>\\n )\\n }}\\n </Form>\\n </div>\\n)\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n### 表单提交\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport ReactDOM from 'react-dom';\\nimport { Form, Input, Select, Row, Col, Button } from 'uiw';\\n\\nconst Demo = () => (\\n <div>\\n <Form\\n onSubmit={({initial, current}) => {\\n console.log('-->>', initial, current);\\n }}\\n fields={{\\n firstName: {\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n inline: true,\\n label: '姓氏',\\n children: <Input />\\n },\\n lastName: {\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n initialValue: '先生',\\n inline: true,\\n label: '名字',\\n children: <Input />\\n },\\n email: {\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n validator: (currentValue) => {\\n return currentValue && currentValue.length < 2 ? 'Password must be 8+ characters' : null;\\n },\\n inline: true,\\n label: 'Email',\\n children: <Input />\\n },\\n select: {\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n inline: true,\\n label: '选择器',\\n children: (\\n <Select>\\n <Select.Option>Choose an item...</Select.Option>\\n <Select.Option value=\\\"1\\\">One</Select.Option>\\n <Select.Option value=\\\"2\\\">Two</Select.Option>\\n <Select.Option value=\\\"3\\\">Three</Select.Option>\\n <Select.Option value=\\\"4\\\">Four</Select.Option>\\n </Select>\\n ),\\n },\\n }}\\n >\\n {({ fields, state, canSubmit }) => {\\n console.log('fields:', state);\\n return (\\n <div>\\n <Row gutter={10} style={{ marginBottom: 10 }}>\\n <Col>{fields.firstName}</Col>\\n <Col>{fields.lastName}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col>{fields.email}</Col>\\n <Col>{fields.select}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col />\\n <Col fixed align=\\\"bottom\\\"><Button disabled={!canSubmit()} type=\\\"primary\\\" htmlType=\\\"submit\\\">提交</Button></Col>\\n </Row>\\n </div>\\n )\\n }}\\n </Form>\\n </div>\\n)\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n\\n### 自定义控件应用\\n\\n下面实例是在 [`<Form />`](#/components/form) 表单组件中,应用自定义 `<CustomSelect />` 控件组件。\\n\\n> ⚠️ 注意,自定义控件需要两个必要的 `props` 参数,`value` 和 `onChange`\\n<!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;-->\\n\\n- `value` 用于值传递,\\n- `onChange(value)` 用于值变更需要执行的回调函数,回调函数第一个参数必须是 `value`。\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport React from 'react';\\nimport ReactDOM from 'react-dom';\\nimport { Form, Row, Col, Dropdown, Menu, Icon, Button, Notify } from 'uiw';\\n\\n// 自定义组件\\nfunction CustomSelect(props) {\\n const { option = [], onChange } = props;\\n const [value, setValue] = React.useState(props.value);\\n const [isOpen, setIsOpen] = React.useState(false);\\n\\n React.useEffect(() => {\\n if (value !== props.value) {\\n setValue(props.value);\\n }\\n }, [props.value]);\\n const label = option.find(item => value === item.value);\\n return (\\n <Dropdown\\n trigger=\\\"click\\\"\\n onVisibleChange={(open) => setIsOpen(open)}\\n isOpen={isOpen}\\n menu={\\n <Menu bordered style={{ minWidth: 120 }}>\\n {option.map((item, idx) => (\\n <Menu.Item active={value === item.value} key={idx} text={item.label}\\n onClick={() => {\\n setValue(item.value);\\n setIsOpen(false)\\n onChange && onChange(item.value);\\n }}\\n />\\n ))}\\n </Menu>\\n }\\n >\\n <Button\\n style={{\\n boxShadow: 'inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1)'\\n }}\\n type=\\\"link\\\"\\n >\\n {label.label}<Icon type={isOpen ? 'up' : 'down'} />\\n </Button>\\n </Dropdown>\\n );\\n}\\n\\n// 自定义组件应用实例\\nconst Demo = () => (\\n <div>\\n <Form\\n onSubmitError={(error) => {\\n if (error.filed) {\\n return { ...error.filed };\\n }\\n return null;\\n }}\\n onSubmit={({initial, current}) => {\\n console.log('~~~', current);\\n const errorObj = {};\\n if (!current.select) {\\n errorObj.select = '内容为空,请输入内容';\\n }\\n if(Object.keys(errorObj).length > 0) {\\n const err = new Error();\\n err.filed = errorObj;\\n Notify.error({ title: '提交失败!', description: '请确认提交表单是否正确!' });\\n throw err;\\n }\\n Notify.success({\\n title: '提交成功!',\\n description: `表单提交成功,内容为:${current.select},将自动填充初始化值!`,\\n });\\n }}\\n fields={{\\n select: {\\n initialValue: 0,\\n children: (\\n <CustomSelect option={[\\n { label: '请选择', value: 0 },\\n { label: '经济舱', value: 1 },\\n { label: '豪华经济舱', value: 2 },\\n { label: '商务舱', value: 3 },\\n { label: '头等舱', value: 4 },\\n ]} />\\n )\\n },\\n }}\\n >\\n {({ fields, state, canSubmit }) => {\\n return (\\n <div>\\n <Row>\\n <Col style={{ maxWidth: 300 }}>{fields.select}</Col>\\n </Row>\\n <Row>\\n <Col fixed>\\n <Button disabled={!canSubmit()} type=\\\"primary\\\" htmlType=\\\"submit\\\">提交</Button>\\n </Col>\\n </Row>\\n </div>\\n )\\n }}\\n </Form>\\n </div>\\n)\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n### FormItem 竖排\\n\\n对组件 `FormItem` 竖排展示示例。\\n\\n> ⚠️ 注意:`FormItem` 组件只在 `Form` 组件中使用,在 `@v4.10.4+` 以上版本可以当普通 `form` 使用。\\n<!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;-->\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport React from 'react';\\nimport ReactDOM from 'react-dom';\\nimport { Form, FormItem, Button } from 'uiw';\\n\\nconst Demo = () => {\\n const [formData, setFormData] = React.useState({});\\n const handleSubmit = (_, e) => {\\n e && e.preventDefault();\\n const fData = new FormData(e.target);\\n const data = {};\\n fData.forEach((value, key) => { data[key] = value; });\\n setFormData(data);\\n }\\n return (\\n <Form onSubmit={handleSubmit} onReset={() => setFormData({})}>\\n <FormItem\\n label=\\\"可选字段\\\"\\n labelFor=\\\"item-basic-input\\\"\\n help={<span>在上面的字段中输入一个值</span>}\\n >\\n <Input id=\\\"item-basic-input\\\" name=\\\"basic\\\" type=\\\"text\\\"/>\\n </FormItem>\\n <FormItem\\n label=\\\"用户名\\\"\\n labelFor=\\\"item-username-input\\\"\\n help={(!formData.username || formData.username.length < 8) ? \\\"用户名长度至少为8个字符串。\\\" : \\\"用户名正确 √ \\\"}\\n hasError={(!formData.username || formData.username.length < 8)}\\n >\\n <Input id=\\\"item-username-input\\\" name=\\\"username\\\" type=\\\"text\\\"/>\\n </FormItem>\\n <FormItem>\\n <Button type=\\\"success\\\" htmlType=\\\"submit\\\"> Submit </Button>\\n <Button type=\\\"light\\\" htmlType=\\\"reset\\\"> Reset </Button>\\n </FormItem>\\n <pre>\\n {JSON.stringify(formData, null, 2)}\\n </pre>\\n </Form>\\n );\\n}\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n### FormItem 横排\\n\\n对组件 `FormItem` 横排展示示例。\\n\\n> ⚠️ 注意:`FormItem` 组件只在 `Form` 组件中使用,在 `@v4.10.4+` 以上版本可以当普通 `form` 使用。\\n<!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;-->\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport ReactDOM from 'react-dom';\\nimport { Form, FormItem } from 'uiw';\\n\\nconst Demo = () => (\\n <Form>\\n <FormItem\\n inline={true}\\n label=\\\"可选字段\\\"\\n labelFor=\\\"basic-input-inline\\\"\\n help={<span>在上面的字段中输入一个值</span>}\\n onChange={() => {\\n console.log('TEST::');\\n }}\\n >\\n <Input id=\\\"basic-input-inline\\\" name=\\\"basic\\\" type=\\\"text\\\"/>\\n </FormItem>\\n <FormItem\\n inline={true}\\n label=\\\"用户名\\\"\\n labelFor=\\\"username-input-inline\\\"\\n labelClassName=\\\"username\\\"\\n help=\\\"用户名长度至少为8个字符串。\\\"\\n hasError={true}\\n >\\n <Input id=\\\"username-input-inline\\\" name=\\\"username\\\" type=\\\"text\\\"/>\\n </FormItem>\\n </Form>\\n)\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n## Form\\n\\n| 参数 | 说明 | 类型 | 默认值 |\\n|--------- |-------- |--------- |-------- |\\n| fields | 设置字段 | object | - |\\n| children | 回调 {`fields`, `state`, `canSubmit`, `resetForm`} | function | - |\\n| onSubmit | 提交表单时调用 | `(state: FormSubmitProps, event: React.FormEvent) => any` | - |\\n| afterSubmit `@3.0.0+` | 提交回调 {`initial`, `current`} | function({ initial, current }) | - |\\n| onChange | 表单发生改变回调函数 {`initial`, `current`} | function({ initial, current }) | - |\\n| onSubmitError | 调用 `onSubmit` 抛出的任何错误。从字段名称返回对象映射。 | function | - |\\n| resetOnSubmit | 在 `onSubmit` 成功后将表单重置为其初始状态。| bool | `true` |\\n\\n```js\\n// => fields props\\n{\\n firstName: {\\n initialValue: '王',\\n inline: true,\\n label: '姓',\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n // 验证,通过 `canSubmit()` 方法获得,提交按钮是否被禁用\\n validator: (currentValue) => {},\\n help: '帮助提示信息!',\\n children: <Input type=\\\"number\\\" />\\n },\\n}\\n```\\n\\n## FormItem\\n\\n| 参数 | 说明 | 类型 | 默认值 |\\n|--------- |-------- |--------- |-------- |\\n| label | 表单标题展示 | string | - |\\n| labelClassName | 表单标题样式名称 | string | - |\\n| labelStyle | 表单标题样式 | object | - |\\n| labelFor | 列的宽度相对于同一网格中其他列的比率 | number | - |\\n| help | 提示信息 | ReactNode | - |\\n| hasError | 如果为true,则应用错误CSS。转动边框并帮助文字变红。 | number | - |\\n\";"],"names":[],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[766],{80766:function(e,n,r){r.r(n),n.default="SearchTree \u5e26\u641c\u7d22\u7684Tree\u9009\u62e9\u63a7\u4ef6\n===\n\n[](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-search-tree/file/README.md)\n[](https://www.npmjs.com/package/@uiw/react-search-tree)\n[](https://npmjs.com/@uiw/react-search-tree)\n\n\u4f7f\u7528\u6811\u9009\u62e9\u63a7\u4ef6\u53ef\u4ee5\u5b8c\u6574\u5c55\u73b0\u5176\u4e2d\u7684\u5c42\u7ea7\u5173\u7cfb\uff0c\u5e76\u5177\u6709\u9009\u4e2d\u72b6\u6001\u3002\u65b0\u7ec4\u4ef6 v4.11.7+ \u652f\u6301\u3002\n\n```jsx\nimport { SearchTree } from 'uiw';\n// or\nimport SearchTree from '@uiw/react-search-tree';\n```\n\n### \u57fa\u7840\u5b9e\u4f8b\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport React, { useState, useEffect, useRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport { SearchTree } from 'uiw';\n\nconst data = [\n {\n label: '\u4e0a\u6d77\u5e02',\n key: '1-0-0',\n children:[\n { label: '\u9ec4\u6d66\u533a', key: '1-0-1' },\n { label: '\u5362\u6e7e\u533a', key: '1-0-2' },\n {\n label: '\u5f90\u6c47\u533a',\n key: '1-0-3',\n children:[\n { label: '\u534a\u6dde\u56ed\u8def\u8857\u9053', key: '1-1-0' },\n { label: '\u5357\u4eac\u4e1c\u8def\u8857\u9053', key: '1-2-0' },\n { label: '\u5916\u6ee9\u8857\u9053', key: '1-3-0' },\n ]\n },\n ]\n },\n {\n label: '\u5317\u4eac\u5e02',\n key: '2-0-0',\n children:[\n { label: '\u4e1c\u57ce\u533a', key: '2-1-0' },\n { label: '\u897f\u57ce\u533a', key: '2-2-0' },\n {\n label: '\u5d07\u6587\u533a',\n key: '2-3-0',\n children:[\n { label: '\u4e1c\u82b1\u5e02\u8857\u9053', key: '2-3-1' },\n { label: '\u4f53\u80b2\u9986\u8def\u8857\u9053', key: '2-3-2' },\n { label: '\u524d\u95e8\u8857\u9053', key: '2-3-3' },\n ]\n },\n ]\n },\n { label: '\u6fb3\u95e8', key: '3' },\n];\nconst Demo = () => {\n\nconst [value,valueSet]=useState([{ label: '\u4e1c\u82b1\u5e02\u8857\u9053', key: '2-3-1' }])\n\nconst onChange=(selectd, selectedAll, isChecked)=>{\n console.log('SearchTree-> onChange',selectedAll, selectd, isChecked)\n valueSet(selectedAll)\n}\n\n return (<SearchTree\n allowClear={true}\n onSearch={(searchValue)=>console.log('SearchTree-> SearchTreeOption',searchValue)}\n onChange={onChange}\n value={value}\n options={data}\n placeholder=\"\u8bf7\u8f93\u5165\u9009\u62e9\"\n />)\n}\nReactDOM.render(<Demo />, _mount_);\n```\n\n## Form\u4e2d\u4f7f\u7528\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport React, { useState, useEffect, useRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport { Form, Button, SearchTree, Card, Row, Col } from 'uiw';;\n\n\nconst Demo = () => {\nconst form=useRef()\n\n const data = [\n {\n label: '\u4e0a\u6d77\u5e02',\n key: '1-0-0',\n children:[\n { label: '\u9ec4\u6d66\u533a', key: '1-0-1' },\n { label: '\u5362\u6e7e\u533a', key: '1-0-2' },\n {\n label: '\u5f90\u6c47\u533a',\n key: '1-0-3',\n children:[\n { label: '\u534a\u6dde\u56ed\u8def\u8857\u9053', key: '1-1-0' },\n { label: '\u5357\u4eac\u4e1c\u8def\u8857\u9053', key: '1-2-0' },\n { label: '\u5916\u6ee9\u8857\u9053', key: '1-3-0' },\n ]\n },\n ]\n },\n {\n label: '\u5317\u4eac\u5e02',\n key: '2-0-0',\n children:[\n { label: '\u4e1c\u57ce\u533a', key: '2-1-0' },\n { label: '\u897f\u57ce\u533a', key: '2-2-0' },\n {\n label: '\u5d07\u6587\u533a',\n key: '2-3-0',\n children:[\n { label: '\u4e1c\u82b1\u5e02\u8857\u9053', key: '2-3-1' },\n { label: '\u4f53\u80b2\u9986\u8def\u8857\u9053', key: '2-3-2' },\n { label: '\u524d\u95e8\u8857\u9053', key: '2-3-3' },\n ]\n },\n ]\n },\n { label: '\u6fb3\u95e8', key: '3' },\n ];\n\n const setValue=()=>{\n form.current.setFields({ searchTree: [{ label: '\u4e1c\u57ce\u533a', key: '2-1-0' }, { label: '\u5916\u6ee9\u8857\u9053', key: '1-3-0' }] })\n }\n\n const resetValue=()=>{\n form.current.resetForm()\n }\n\n return (\n <div>\n <Form\n ref={form}\n onSubmitError={(error) => {\n if (error.filed) {\n return { ...error.filed };\n }\n return null;\n }}\n onSubmit={({initial, current}) => {\n console.log('current',current)\n const errorObj = {};\n if (!current.selectField) {\n errorObj.selectField = '\u9ed8\u8ba4\u9700\u8981\u9009\u62e9\u5185\u5bb9\uff0c\u9009\u62e9\u5165\u5185\u5bb9';\n }\n if(Object.keys(errorObj).length > 0) {\n const err = new Error();\n err.filed = errorObj;\n Notify.error({ title: '\u63d0\u4ea4\u5931\u8d25\uff01', description: '\u8bf7\u786e\u8ba4\u63d0\u4ea4\u8868\u5355\u662f\u5426\u6b63\u786e\uff01' });\n throw err;\n }\n Notify.success({\n title: '\u63d0\u4ea4\u6210\u529f\uff01',\n description: `\u8868\u5355\u63d0\u4ea4\u6210\u529f\uff0c\u9009\u62e9\u503c\u4e3a\uff1a${current.selectField}\uff0c\u5c06\u81ea\u52a8\u586b\u5145\u521d\u59cb\u5316\u503c\uff01`,\n });\n }}\n fields={{\n searchTree: {\n initialValue:[{ label: '\u4e1c\u82b1\u5e02\u8857\u9053', key: '2-3-1' },{ label: '\u524d\u95e8\u8857\u9053', key: '2-3-3' }],\n children: (\n <SearchTree\n allowClear={true}\n onSearch={(searchValue)=>console.log('SearchTree-> SearchTreeOption',searchValue)}\n onChange={(selectd, selectedAll, isChecked)=>console.log('SearchTree-> onChange', selectd, selectedAll, isChecked)}\n options={data}\n placeholder=\"\u8bf7\u8f93\u5165\u9009\u62e9\"\n />\n )\n },\n }}\n >\n {({ fields, state, canSubmit }) => {\n return (\n <div>\n <Row>\n <Col fixed>{fields.searchTree}</Col>\n </Row>\n <Row>\n <Col fixed>\n <Button disabled={!canSubmit()} type=\"primary\" htmlType=\"submit\">\u63d0\u4ea4</Button>\n <Button onClick={setValue} type=\"primary\" >setValue</Button>\n <Button onClick={resetValue} type=\"primary\" >\u91cd\u7f6e</Button>\n </Col>\n </Row>\n <Row>\n <Col>\n <pre style={{ padding: 10, marginTop: 10 }}>\n {JSON.stringify(state.current, null, 2)}\n </pre>\n </Col>\n </Row>\n </div>\n )\n }}\n </Form>\n </div>\n );\n}\nReactDOM.render(<Demo />, _mount_);\n```\n\n## Props\n\n| \u53c2\u6570 | \u8bf4\u660e | \u7c7b\u578b | \u9ed8\u8ba4\u503c |\n|--------- |-------- |--------- |-------- |\n| allowClear | \u652f\u6301\u6e05\u9664 | Boolean | `false` |\n| disabled | \u7981\u7528\u9009\u62e9\u5668 | Boolean | `false` |\n| value | \u6307\u5b9a\u5f53\u524d\u9009\u4e2d\u7684\u6761\u76ee | [{label:string, key:string}] | - |\n| options | \u4e0b\u62c9\u6570\u636e\u6e90,\u53ef\u53c2\u8003Tree\u4e0b\u62c9\u6570\u636e\u6e90 | [{label:string, key:string, children: [{label:string, key:string}] }] | - |\n| placeholder | \u9009\u62e9\u6846\u9ed8\u8ba4\u6587\u5b57 | String | - |\n| size | \u9009\u62e9\u6846\u5c3a\u5bf8 | Enum{large, default, small } | `default` |\n| onChange | \u9009\u4e2d option\uff0c\u6216 input \u7684 value\uff0c\u8c03\u7528\u6b64\u51fd\u6570 | function(selectd, selectdAll, isChecked)=>void | - |\n| onSearch | \u6587\u672c\u6846\u503c\u53d8\u5316\u65f6\u56de\u8c03 | function(searchValue) | - |\n| loading | \u52a0\u8f7d\u4e2d\u72b6\u6001 | Boolean | `false` |\n\n"}}]);
|
|
2
|
-
//# sourceMappingURL=766.3a803d1a.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/js/766.3a803d1a.chunk.js","mappings":"+GAAA","sources":["../../packages/react-search-tree/README.md"],"sourcesContent":["export default \"SearchTree 带搜索的Tree选择控件\\n===\\n\\n[](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-search-tree/file/README.md)\\n[](https://www.npmjs.com/package/@uiw/react-search-tree)\\n[](https://npmjs.com/@uiw/react-search-tree)\\n\\n使用树选择控件可以完整展现其中的层级关系,并具有选中状态。新组件 v4.11.7+ 支持。\\n\\n```jsx\\nimport { SearchTree } from 'uiw';\\n// or\\nimport SearchTree from '@uiw/react-search-tree';\\n```\\n\\n### 基础实例\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport React, { useState, useEffect, useRef } from 'react';\\nimport ReactDOM from 'react-dom';\\nimport { SearchTree } from 'uiw';\\n\\nconst data = [\\n {\\n label: '上海市',\\n key: '1-0-0',\\n children:[\\n { label: '黄浦区', key: '1-0-1' },\\n { label: '卢湾区', key: '1-0-2' },\\n {\\n label: '徐汇区',\\n key: '1-0-3',\\n children:[\\n { label: '半淞园路街道', key: '1-1-0' },\\n { label: '南京东路街道', key: '1-2-0' },\\n { label: '外滩街道', key: '1-3-0' },\\n ]\\n },\\n ]\\n },\\n {\\n label: '北京市',\\n key: '2-0-0',\\n children:[\\n { label: '东城区', key: '2-1-0' },\\n { label: '西城区', key: '2-2-0' },\\n {\\n label: '崇文区',\\n key: '2-3-0',\\n children:[\\n { label: '东花市街道', key: '2-3-1' },\\n { label: '体育馆路街道', key: '2-3-2' },\\n { label: '前门街道', key: '2-3-3' },\\n ]\\n },\\n ]\\n },\\n { label: '澳门', key: '3' },\\n];\\nconst Demo = () => {\\n\\nconst [value,valueSet]=useState([{ label: '东花市街道', key: '2-3-1' }])\\n\\nconst onChange=(selectd, selectedAll, isChecked)=>{\\n console.log('SearchTree-> onChange',selectedAll, selectd, isChecked)\\n valueSet(selectedAll)\\n}\\n\\n return (<SearchTree\\n allowClear={true}\\n onSearch={(searchValue)=>console.log('SearchTree-> SearchTreeOption',searchValue)}\\n onChange={onChange}\\n value={value}\\n options={data}\\n placeholder=\\\"请输入选择\\\"\\n />)\\n}\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n## Form中使用\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport React, { useState, useEffect, useRef } from 'react';\\nimport ReactDOM from 'react-dom';\\nimport { Form, Button, SearchTree, Card, Row, Col } from 'uiw';;\\n\\n\\nconst Demo = () => {\\nconst form=useRef()\\n\\n const data = [\\n {\\n label: '上海市',\\n key: '1-0-0',\\n children:[\\n { label: '黄浦区', key: '1-0-1' },\\n { label: '卢湾区', key: '1-0-2' },\\n {\\n label: '徐汇区',\\n key: '1-0-3',\\n children:[\\n { label: '半淞园路街道', key: '1-1-0' },\\n { label: '南京东路街道', key: '1-2-0' },\\n { label: '外滩街道', key: '1-3-0' },\\n ]\\n },\\n ]\\n },\\n {\\n label: '北京市',\\n key: '2-0-0',\\n children:[\\n { label: '东城区', key: '2-1-0' },\\n { label: '西城区', key: '2-2-0' },\\n {\\n label: '崇文区',\\n key: '2-3-0',\\n children:[\\n { label: '东花市街道', key: '2-3-1' },\\n { label: '体育馆路街道', key: '2-3-2' },\\n { label: '前门街道', key: '2-3-3' },\\n ]\\n },\\n ]\\n },\\n { label: '澳门', key: '3' },\\n ];\\n\\n const setValue=()=>{\\n form.current.setFields({ searchTree: [{ label: '东城区', key: '2-1-0' }, { label: '外滩街道', key: '1-3-0' }] })\\n }\\n\\n const resetValue=()=>{\\n form.current.resetForm()\\n }\\n\\n return (\\n <div>\\n <Form\\n ref={form}\\n onSubmitError={(error) => {\\n if (error.filed) {\\n return { ...error.filed };\\n }\\n return null;\\n }}\\n onSubmit={({initial, current}) => {\\n console.log('current',current)\\n const errorObj = {};\\n if (!current.selectField) {\\n errorObj.selectField = '默认需要选择内容,选择入内容';\\n }\\n if(Object.keys(errorObj).length > 0) {\\n const err = new Error();\\n err.filed = errorObj;\\n Notify.error({ title: '提交失败!', description: '请确认提交表单是否正确!' });\\n throw err;\\n }\\n Notify.success({\\n title: '提交成功!',\\n description: `表单提交成功,选择值为:${current.selectField},将自动填充初始化值!`,\\n });\\n }}\\n fields={{\\n searchTree: {\\n initialValue:[{ label: '东花市街道', key: '2-3-1' },{ label: '前门街道', key: '2-3-3' }],\\n children: (\\n <SearchTree\\n allowClear={true}\\n onSearch={(searchValue)=>console.log('SearchTree-> SearchTreeOption',searchValue)}\\n onChange={(selectd, selectedAll, isChecked)=>console.log('SearchTree-> onChange', selectd, selectedAll, isChecked)}\\n options={data}\\n placeholder=\\\"请输入选择\\\"\\n />\\n )\\n },\\n }}\\n >\\n {({ fields, state, canSubmit }) => {\\n return (\\n <div>\\n <Row>\\n <Col fixed>{fields.searchTree}</Col>\\n </Row>\\n <Row>\\n <Col fixed>\\n <Button disabled={!canSubmit()} type=\\\"primary\\\" htmlType=\\\"submit\\\">提交</Button>\\n <Button onClick={setValue} type=\\\"primary\\\" >setValue</Button>\\n <Button onClick={resetValue} type=\\\"primary\\\" >重置</Button>\\n </Col>\\n </Row>\\n <Row>\\n <Col>\\n <pre style={{ padding: 10, marginTop: 10 }}>\\n {JSON.stringify(state.current, null, 2)}\\n </pre>\\n </Col>\\n </Row>\\n </div>\\n )\\n }}\\n </Form>\\n </div>\\n );\\n}\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n## Props\\n\\n| 参数 | 说明 | 类型 | 默认值 |\\n|--------- |-------- |--------- |-------- |\\n| allowClear | 支持清除 | Boolean | `false` |\\n| disabled | 禁用选择器 | Boolean | `false` |\\n| value | 指定当前选中的条目 | [{label:string, key:string}] | - |\\n| options | 下拉数据源,可参考Tree下拉数据源 | [{label:string, key:string, children: [{label:string, key:string}] }] | - |\\n| placeholder | 选择框默认文字 | String | - |\\n| size | 选择框尺寸 | Enum{large, default, small } | `default` |\\n| onChange | 选中 option,或 input 的 value,调用此函数 | function(selectd, selectdAll, isChecked)=>void | - |\\n| onSearch | 文本框值变化时回调 | function(searchValue) | - |\\n| loading | 加载中状态 | Boolean | `false` |\\n\\n\";"],"names":[],"sourceRoot":""}
|