1 |
- {"version":3,"file":"index.js","sources":["../../src/components/Payment/PriceOptions/index.tsx"],"sourcesContent":["import React, { useState } from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { Input } from \"antd\";\r\nimport styles from \"./PriceOptions.less\";\r\n\r\ninterface Props {\r\n price: number;\r\n onPriceChange: (v: number) => void;\r\n size: \"small\" | \"normal\" | \"large\";\r\n focusScroll: boolean;\r\n withTitle: boolean;\r\n titleText?: string | JSX.Element[] | JSX.Element;\r\n inputPlaceholderText?: string;\r\n priceOptions?: Array<any>;\r\n priceRender?: Function;\r\n inputPriceRender?: Function;\r\n inputRef: React.RefObject<any>;\r\n}\r\n\r\nconst PriceOptions = ({\r\n price,\r\n onPriceChange,\r\n size = \"normal\",\r\n focusScroll = true,\r\n withTitle = true,\r\n titleText = \"Price\",\r\n inputPlaceholderText = \"Others\",\r\n priceOptions = [100, 600, 800],\r\n priceRender = (i: any) => i / 100,\r\n inputPriceRender = (i: any) => (i ? i / 100 : \"\"),\r\n inputRef\r\n}: Props) => {\r\n const defaultOptions = priceOptions;\r\n // 控制是否为其他金额输入情况\r\n const [inputStatus, setInputStatus] = useState(false);\r\n\r\n return (\r\n <div className={classnames(styles.options)}>\r\n {withTitle ? (titleText || null) : null}\r\n <div className={styles.infoItem}>\r\n <span className={styles.priceBtn}>\r\n {defaultOptions.map(item => (\r\n <span\r\n className={classnames({\r\n [styles.priceItem]: true,\r\n [styles.active]: price === item && !inputStatus\r\n })}\r\n key={item}\r\n onClick={() => {\r\n onPriceChange(item);\r\n setInputStatus(false);\r\n }}\r\n >\r\n {priceRender(item)}\r\n </span>\r\n ))}\r\n </span>\r\n <Input\r\n ref={inputRef}\r\n onMouseEnter={() => {\r\n if (inputStatus && inputRef && inputRef.current) {\r\n inputRef.current.focus();\r\n inputRef.current.select();\r\n }\r\n }}\r\n suffix=\"¥\"\r\n className={styles.priceInput}\r\n value={inputStatus ? inputPriceRender(price) : \"\"}\r\n placeholder={inputPlaceholderText}\r\n onChange={e => {\r\n const n = +e.target.value;\r\n if (Number.isNaN(n)) {\r\n return;\r\n }\r\n // 测试暂时改成1分\r\n onPriceChange(n * 100);\r\n }}\r\n onClick={e => {\r\n onPriceChange(0);\r\n setInputStatus(true);\r\n }}\r\n onFocus={e => {\r\n e.target.placeholder = \"\";\r\n setInputStatus(true);\r\n if (focusScroll) {\r\n e.target.scrollIntoView();\r\n }\r\n }}\r\n onBlur={e => {\r\n e.target.placeholder = inputPlaceholderText;\r\n if (price) {\r\n setInputStatus(true);\r\n } else {\r\n setInputStatus(false);\r\n }\r\n }}\r\n />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default PriceOptions;\r\n"],"names":["PriceOptions","price","onPriceChange","size","focusScroll","withTitle","titleText","inputPlaceholderText","priceOptions","priceRender","i","inputPriceRender","inputRef","defaultOptions","useState","inputStatus","setInputStatus","classnames","styles","options","infoItem","priceBtn","map","item","priceItem","active","current","focus","select","priceInput","e","n","target","value","Number","isNaN","placeholder","scrollIntoView"],"mappings":"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"}
|