ukelli-ui
Version:
Base on React's UI lib. Make frontend's dev simpler and faster.
59 lines (58 loc) • 3.23 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import React from 'react';
import { ToFixed } from 'basic-helper';
import NumTransformToCN from 'basic-helper/num-to-cn';
import InputVerifyClass from './input-verify-class';
function precentFilter(val, isPrecent) {
return isPrecent ? ToFixed(val / 10, 1) : val;
}
var FormTip = function (_a) {
var children = _a.children;
return (React.createElement("span", { className: "form-tip" }, children));
};
/**
* 继承于 InputVerifyClass 的模版
*
* @export
* @class InputNumber
* @extends {InputVerifyClass}
*/
var InputNumber = /** @class */ (function (_super) {
__extends(InputNumber, _super);
function InputNumber() {
return _super !== null && _super.apply(this, arguments) || this;
}
InputNumber.prototype.render = function () {
var _this = this;
var _a = this.state, matchLen = _a.matchLen, matchRange = _a.matchRange;
var _b = this.props, _c = _b.className, className = _c === void 0 ? '' : _c, _d = _b.type, type = _d === void 0 ? 'input' : _d, _e = _b.needCN, needCN = _e === void 0 ? false : _e, _f = _b.selectable, selectable = _f === void 0 ? true : _f, _g = _b.unit, unit = _g === void 0 ? 1 : _g, _h = _b.inputable, inputable = _h === void 0 ? true : _h, _j = _b.precent, precent = _j === void 0 ? false : _j, style = _b.style;
var value = this.getValue();
var PrecentDOM = precent && (React.createElement(FormTip, null,
precentFilter(value, precent),
"%"));
var CNNumDOM = needCN && (React.createElement(FormTip, null, NumTransformToCN(value)));
return (React.createElement("div", { className: "input-verify" + ((!matchLen || !matchRange) ? ' error' : '') },
React.createElement("input", { type: type, value: value, style: style, readOnly: !inputable, className: "form-control " + className, onBlur: function (e) { return _this._onBlur(e); }, onChange: function (e) { return _this._onChange(e.target.value); }, onFocus: function (e) { return _this._onFocus(e.target.value, e); } }),
selectable && (React.createElement("div", { className: "option-btns" },
React.createElement("div", { className: "minu _btn", onClick: function (e) { return _this._onChange((+value - unit)); } },
React.createElement("span", null, "-")),
React.createElement("div", { className: "plus _btn", onClick: function (e) { return _this._onChange((+value + unit)); } },
React.createElement("span", null, "+")))),
CNNumDOM,
PrecentDOM));
};
return InputNumber;
}(InputVerifyClass));
export default InputNumber;