Keine Beschreibung

index.js 8.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. import { i as _slicedToArray, c as _defineProperty, h as _objectSpread2 } from '../_rollupPluginBabelHelpers-bf46fecd.js';
  2. import React, { useState } from 'react';
  3. import '../_commonjsHelpers-97e6d7b1.js';
  4. import { c as classnames } from '../index-c9837619.js';
  5. import { s as styleInject } from '../style-inject.es-1f59c1d0.js';
  6. import { Input } from 'antd';
  7. var css = ".PriceOptions_options__J-ZSS {\n border-bottom: 1px dashed #00000017;\n}\n.PriceOptions_options__J-ZSS p {\n font-size: 14px;\n font-weight: 400;\n color: #616a79;\n margin-bottom: 20px;\n}\n.PriceOptions_options__J-ZSS .PriceOptions_infoItem__3IL3a {\n padding-right: 0;\n}\n.PriceOptions_options__J-ZSS .PriceOptions_infoItem__3IL3a .PriceOptions_priceItem__rJ9o2 {\n background: rgba(243, 243, 243, 0.14);\n border-radius: 4px;\n border: 1px solid #cfcfcf;\n font-size: 14px;\n font-weight: 600;\n color: #616a79;\n display: inline-block;\n text-align: center;\n vertical-align: top;\n height: 30px;\n width: 70px;\n line-height: 30px;\n cursor: pointer;\n margin: 6px;\n}\n.PriceOptions_options__J-ZSS .PriceOptions_infoItem__3IL3a .PriceOptions_priceItem__rJ9o2.PriceOptions_active__3WyAU {\n background: rgba(255, 50, 102, 0.1);\n border-radius: 4px;\n border: 1px solid #ff3266;\n color: #616a79;\n}\n.PriceOptions_options__J-ZSS .PriceOptions_infoItem__3IL3a .PriceOptions_priceInput__1MrVy {\n display: inline-block;\n min-width: 70px;\n width: auto;\n margin: 6px;\n text-align: center;\n}\n.PriceOptions_options__J-ZSS .PriceOptions_infoItem__3IL3a button {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n height: 30px;\n width: 50px;\n vertical-align: top;\n padding: 0 5px;\n}\n.PriceOptions_options__J-ZSS .PriceOptions_infoItem__3IL3a .PriceOptions_rate__QgHQ3 {\n margin-left: 10px;\n}\n.PriceOptions_options__J-ZSS .PriceOptions_infoItem__3IL3a .PriceOptions_rate__QgHQ3 i {\n margin-right: 5px;\n color: #1790FF;\n}\n.PriceOptions_options__J-ZSS.PriceOptions_small__2-wzl {\n padding: 0 0 12px 0;\n border-bottom: none;\n}\n.PriceOptions_options__J-ZSS.PriceOptions_small__2-wzl p {\n margin-bottom: 8px;\n}\n.PriceOptions_options__J-ZSS.PriceOptions_small__2-wzl .PriceOptions_infoItem__3IL3a {\n text-align: center;\n}\n.PriceOptions_options__J-ZSS.PriceOptions_small__2-wzl .PriceOptions_infoItem__3IL3a .PriceOptions_priceItem__rJ9o2 {\n border-radius: 6px;\n height: 32px;\n width: 72px;\n margin: 0 0 12px 19px;\n}\n.PriceOptions_options__J-ZSS.PriceOptions_small__2-wzl .PriceOptions_infoItem__3IL3a .PriceOptions_priceItem__rJ9o2:first-child {\n margin: 0 0 12px 0px;\n}\n.PriceOptions_options__J-ZSS.PriceOptions_small__2-wzl .PriceOptions_infoItem__3IL3a .PriceOptions_priceInput__1MrVy {\n display: block;\n width: 254px;\n border-radius: 6px;\n height: 32px;\n}\n.PriceOptions_options__J-ZSS.PriceOptions_multi__N_Xc4 {\n padding: 20px 20px;\n}\n.PriceOptions_options__J-ZSS.PriceOptions_multi__N_Xc4 p {\n font-size: 14px;\n font-weight: 400;\n color: #616a79;\n}\n.PriceOptions_options__J-ZSS.PriceOptions_multi__N_Xc4 .PriceOptions_infoItem__3IL3a {\n padding-right: 0;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n.PriceOptions_options__J-ZSS.PriceOptions_multi__N_Xc4 .PriceOptions_infoItem__3IL3a .PriceOptions_priceBtn__Xz4m_ {\n display: flex;\n justify-content: space-between;\n}\n.PriceOptions_options__J-ZSS.PriceOptions_multi__N_Xc4 .PriceOptions_infoItem__3IL3a .PriceOptions_priceItem__rJ9o2 {\n display: inline-block;\n background-color: #fff;\n width: 74px;\n height: 36px;\n line-height: 36px;\n border-radius: 4px;\n border: 1px solid #cfcfcf;\n}\n.PriceOptions_options__J-ZSS.PriceOptions_multi__N_Xc4 .PriceOptions_infoItem__3IL3a .PriceOptions_priceItem__rJ9o2.PriceOptions_active__3WyAU {\n background-color: #fff;\n color: #FF3266FF;\n border-radius: 4px;\n border: 1px solid #ff3266;\n}\n.PriceOptions_options__J-ZSS.PriceOptions_multi__N_Xc4 .PriceOptions_infoItem__3IL3a .PriceOptions_priceInput__1MrVy {\n border-radius: 6px;\n height: 36px;\n width: auto;\n}\n";
  8. var styles = {"options":"PriceOptions_options__J-ZSS","infoItem":"PriceOptions_infoItem__3IL3a","priceItem":"PriceOptions_priceItem__rJ9o2","active":"PriceOptions_active__3WyAU","priceInput":"PriceOptions_priceInput__1MrVy","rate":"PriceOptions_rate__QgHQ3","small":"PriceOptions_small__2-wzl","multi":"PriceOptions_multi__N_Xc4","priceBtn":"PriceOptions_priceBtn__Xz4m_"};
  9. styleInject(css);
  10. var PriceOptions = function PriceOptions(_ref) {
  11. var price = _ref.price,
  12. onPriceChange = _ref.onPriceChange,
  13. _ref$rowMode = _ref.rowMode,
  14. rowMode = _ref$rowMode === void 0 ? "single" : _ref$rowMode,
  15. _ref$size = _ref.size,
  16. _ref$focusScroll = _ref.focusScroll,
  17. focusScroll = _ref$focusScroll === void 0 ? true : _ref$focusScroll,
  18. _ref$withTitle = _ref.withTitle,
  19. withTitle = _ref$withTitle === void 0 ? true : _ref$withTitle,
  20. _ref$titleText = _ref.titleText,
  21. titleText = _ref$titleText === void 0 ? "Price" : _ref$titleText,
  22. _ref$inputPlaceholder = _ref.inputPlaceholderText,
  23. inputPlaceholderText = _ref$inputPlaceholder === void 0 ? "Others" : _ref$inputPlaceholder,
  24. _ref$priceOptions = _ref.priceOptions,
  25. priceOptions = _ref$priceOptions === void 0 ? [100, 600, 800] : _ref$priceOptions,
  26. _ref$priceRender = _ref.priceRender,
  27. priceRender = _ref$priceRender === void 0 ? function (i) {
  28. return i / 100;
  29. } : _ref$priceRender,
  30. _ref$inputPriceRender = _ref.inputPriceRender,
  31. inputPriceRender = _ref$inputPriceRender === void 0 ? function (i) {
  32. return i ? i / 100 : "";
  33. } : _ref$inputPriceRender,
  34. _ref$inputSuffix = _ref.inputSuffix,
  35. inputSuffix = _ref$inputSuffix === void 0 ? "¥" : _ref$inputSuffix,
  36. _ref$injectOptions = _ref.injectOptions,
  37. injectOptions = _ref$injectOptions === void 0 ? {
  38. priceBtnClass: {},
  39. priceInputClass: {}
  40. } : _ref$injectOptions,
  41. inputRef = _ref.inputRef;
  42. var defaultOptions = priceOptions; // 控制是否为其他金额输入情况
  43. var _useState = useState(false),
  44. _useState2 = _slicedToArray(_useState, 2),
  45. inputStatus = _useState2[0],
  46. setInputStatus = _useState2[1];
  47. var _useState3 = useState(''),
  48. _useState4 = _slicedToArray(_useState3, 2),
  49. inputPrice = _useState4[0],
  50. setInputPrice = _useState4[1];
  51. return React.createElement("div", {
  52. className: classnames(styles.options, _defineProperty({}, styles.multi, rowMode === "multi"))
  53. }, withTitle ? titleText || null : null, React.createElement("div", {
  54. className: styles.infoItem
  55. }, React.createElement("span", {
  56. className: styles.priceBtn
  57. }, defaultOptions.map(function (item) {
  58. var _objectSpread2$1;
  59. return React.createElement("span", {
  60. className: classnames(_objectSpread2((_objectSpread2$1 = {}, _defineProperty(_objectSpread2$1, styles.priceItem, true), _defineProperty(_objectSpread2$1, styles.active, price === item && !inputStatus), _objectSpread2$1), injectOptions.priceBtnClass)),
  61. key: item,
  62. onClick: function onClick() {
  63. onPriceChange(item);
  64. setInputStatus(false);
  65. }
  66. }, priceRender(item));
  67. })), React.createElement(Input, {
  68. ref: inputRef,
  69. className: classnames(styles.priceInput, _objectSpread2({}, injectOptions.priceInputClass)),
  70. onMouseEnter: function onMouseEnter() {
  71. if (inputStatus && inputRef && inputRef.current) {
  72. inputRef.current.focus();
  73. inputRef.current.select();
  74. }
  75. },
  76. suffix: inputSuffix,
  77. value: inputStatus ? inputPriceRender(inputPrice) : "",
  78. placeholder: inputPlaceholderText,
  79. onChange: function onChange(e) {
  80. var n = +e.target.value;
  81. if (Number.isNaN(n)) {
  82. return;
  83. } // 测试暂时改成1分
  84. setInputPrice("".concat(n * 100));
  85. onPriceChange(n * 100);
  86. },
  87. onClick: function onClick(e) {
  88. if (!inputStatus) {
  89. setInputPrice('');
  90. setInputStatus(true);
  91. }
  92. },
  93. onFocus: function onFocus(e) {
  94. e.target.placeholder = "";
  95. if (inputStatus) {
  96. setInputPrice("".concat(price));
  97. } else {
  98. setInputPrice('');
  99. setInputStatus(true);
  100. }
  101. if (focusScroll) {
  102. e.target.scrollIntoView();
  103. }
  104. },
  105. onBlur: function onBlur(e) {
  106. e.target.placeholder = inputPlaceholderText;
  107. if (inputPrice) {
  108. setInputStatus(true);
  109. } else {
  110. setInputStatus(false);
  111. }
  112. }
  113. })));
  114. };
  115. export default PriceOptions;
  116. //# sourceMappingURL=index.js.map