99 lines
3.5 KiB
JavaScript
99 lines
3.5 KiB
JavaScript
"use strict";
|
|
|
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
var _proProvider = require("@ant-design/pro-provider");
|
|
var _antd = require("antd");
|
|
var _react = _interopRequireWildcard(require("react"));
|
|
var _util = require("./util");
|
|
require("antd/lib/input-number/style");
|
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
// 兼容代码-----------
|
|
|
|
//------------
|
|
|
|
/**
|
|
* 百分比组件
|
|
*
|
|
* @param PercentPropInt
|
|
*/
|
|
var FieldPercent = function FieldPercent(_ref, ref) {
|
|
var text = _ref.text,
|
|
prefix = _ref.prefix,
|
|
precision = _ref.precision,
|
|
_ref$suffix = _ref.suffix,
|
|
suffix = _ref$suffix === void 0 ? '%' : _ref$suffix,
|
|
mode = _ref.mode,
|
|
_ref$showColor = _ref.showColor,
|
|
showColor = _ref$showColor === void 0 ? false : _ref$showColor,
|
|
render = _ref.render,
|
|
renderFormItem = _ref.renderFormItem,
|
|
fieldProps = _ref.fieldProps,
|
|
placeholder = _ref.placeholder,
|
|
propsShowSymbol = _ref.showSymbol;
|
|
var intl = (0, _proProvider.useIntl)();
|
|
var placeholderValue = placeholder || intl.getMessage('tableForm.inputPlaceholder', '请输入');
|
|
var realValue = (0, _react.useMemo)(function () {
|
|
return typeof text === 'string' && text.includes('%') ? (0, _util.toNumber)(text.replace('%', '')) : (0, _util.toNumber)(text);
|
|
}, [text]);
|
|
var showSymbol = (0, _react.useMemo)(function () {
|
|
if (typeof propsShowSymbol === 'function') {
|
|
return propsShowSymbol === null || propsShowSymbol === void 0 ? void 0 : propsShowSymbol(text);
|
|
}
|
|
return propsShowSymbol;
|
|
}, [propsShowSymbol, text]);
|
|
if (mode === 'read') {
|
|
/** 颜色有待确定, 根据提供 colors: ['正', '负'] | boolean */
|
|
var style = showColor ? {
|
|
color: (0, _util.getColorByRealValue)(realValue)
|
|
} : {};
|
|
var dom = /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
|
|
style: style,
|
|
ref: ref,
|
|
children: [prefix && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
children: prefix
|
|
}), showSymbol && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
|
|
children: [(0, _util.getSymbolByRealValue)(realValue), " "]
|
|
}), (0, _util.getRealTextWithPrecision)(Math.abs(realValue), precision), suffix && suffix]
|
|
});
|
|
if (render) {
|
|
return render(text, (0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
mode: mode
|
|
}, fieldProps), {}, {
|
|
prefix: prefix,
|
|
precision: precision,
|
|
showSymbol: showSymbol,
|
|
suffix: suffix
|
|
}), dom);
|
|
}
|
|
return dom;
|
|
}
|
|
if (mode === 'edit' || mode === 'update') {
|
|
var _dom = /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.InputNumber, (0, _objectSpread2.default)({
|
|
ref: ref,
|
|
formatter: function formatter(value) {
|
|
if (value && prefix) {
|
|
return "".concat(prefix, " ").concat(value).replace(/\B(?=(\d{3})+(?!\d)$)/g, ',');
|
|
}
|
|
return value;
|
|
},
|
|
parser: function parser(value) {
|
|
return value ? value.replace(/.*\s|,/g, '') : '';
|
|
},
|
|
placeholder: placeholderValue
|
|
}, fieldProps));
|
|
if (renderFormItem) {
|
|
return renderFormItem(text, (0, _objectSpread2.default)({
|
|
mode: mode
|
|
}, fieldProps), _dom);
|
|
}
|
|
return _dom;
|
|
}
|
|
return null;
|
|
};
|
|
var _default = exports.default = /*#__PURE__*/_react.default.forwardRef(FieldPercent); |