mobile-more
Version:
基于 antd-mobile v5 扩展移动端 UI 组件
53 lines (52 loc) • 2.34 kB
JavaScript
"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;