UNPKG

mobile-more

Version:

基于 antd-mobile v5 扩展移动端 UI 组件

53 lines (52 loc) 2.34 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireDefault(require("react")); var _ut = require("ut2"); var _classnames = _interopRequireDefault(require("classnames")); var _TextField = _interopRequireDefault(require("./TextField")); var _config = require("../../config"); var _excluded = ["value", "precision", "showColor", "showSymbol", "suffix", "className"]; var prefixCls = "".concat(_config.fieldPrefixClass, "-percent"); function getColor(value) { if (value === 0) { return '#595959'; } return value > 0 ? '#ff4d4f' : '#52c41a'; } function getSymbol(value) { if (value <= 0) { return ''; } return '+'; } var PercentField = /*#__PURE__*/_react.default.memo(function (_ref) { var value = _ref.value, _ref$precision = _ref.precision, precision = _ref$precision === void 0 ? 2 : _ref$precision, _ref$showColor = _ref.showColor, showColor = _ref$showColor === void 0 ? false : _ref$showColor, _ref$showSymbol = _ref.showSymbol, showSymbol = _ref$showSymbol === void 0 ? false : _ref$showSymbol, _ref$suffix = _ref.suffix, suffix = _ref$suffix === void 0 ? '%' : _ref$suffix, className = _ref.className, restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded); var realValue = typeof value === 'string' && value.includes('%') ? parseFloat(value.replace('%', '')) : parseFloat((0, _ut.toString)(value)); var color = getColor(realValue); var symbol = showSymbol ? getSymbol(realValue) : null; var valueRet = (0, _ut.isNaN)(realValue) || value === '' || (0, _ut.isNil)(value) ? '' : typeof precision === 'number' ? realValue.toFixed(precision) : realValue; return /*#__PURE__*/_react.default.createElement(_TextField.default, (0, _extends2.default)({ value: valueRet, color: showColor ? color : undefined, prefix: symbol, suffix: suffix, className: (0, _classnames.default)(prefixCls, className) }, restProps)); }); var _default = exports.default = PercentField;