fastlion-amis
Version:
一种MIS页面生成工具
122 lines (121 loc) • 5.53 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.MonthFieldRenderer = exports.TimeFieldRenderer = exports.DateTimeFieldRenderer = exports.DateFieldRenderer = exports.DateField = void 0;
var tslib_1 = require("tslib");
var react_1 = (0, tslib_1.__importDefault)(require("react"));
var factory_1 = require("../factory");
var moment_1 = (0, tslib_1.__importDefault)(require("moment"));
var helper_1 = require("../utils/helper");
var DateField = /** @class */ (function (_super) {
(0, tslib_1.__extends)(DateField, _super);
function DateField() {
var _this = _super !== null && _super.apply(this, arguments) || this;
// 动态显示相对时间时,用来触发视图更新
_this.state = {
random: 0
};
return _this;
}
DateField.prototype.componentDidMount = function () {
var _this = this;
var _a = this.props, fromNow = _a.fromNow, updateFrequency = _a.updateFrequency;
if (fromNow && updateFrequency) {
this.refreshInterval = setInterval(function () {
_this.setState({
random: Math.random()
});
}, updateFrequency);
}
};
DateField.prototype.componentWillUnmount = function () {
clearInterval(this.refreshInterval);
};
DateField.prototype.render = function () {
var _a = this.props, valueFormat = _a.valueFormat, format = _a.format, placeholder = _a.placeholder, fromNow = _a.fromNow, className = _a.className, cx = _a.classnames, __ = _a.translate;
var viewValue = (react_1.default.createElement("span", { className: "text-muted" }, placeholder));
var value = (0, helper_1.getPropValue)(this.props);
if (value) {
var ISODate = (0, moment_1.default)(value, moment_1.default.ISO_8601);
var NormalDate = (0, moment_1.default)(value, valueFormat);
viewValue = ISODate.isValid()
? ISODate.format(format)
: NormalDate.isValid()
? NormalDate.format(format)
: false;
}
if (fromNow) {
viewValue = (0, moment_1.default)(viewValue).fromNow();
}
viewValue = !viewValue ?
(this.props.value == null ? placeholder :
react_1.default.createElement("span", { className: "text-danger" }, __('Date.invalid'))) :
(viewValue);
return react_1.default.createElement("span", { className: cx('DateField', className), title: (typeof viewValue === 'string') ? viewValue : undefined }, viewValue);
};
DateField.defaultProps = {
placeholder: '-',
format: 'YYYY-MM-DD',
valueFormat: 'X',
fromNow: false,
updateFrequency: 60000
};
return DateField;
}(react_1.default.Component));
exports.DateField = DateField;
var DateFieldRenderer = /** @class */ (function (_super) {
(0, tslib_1.__extends)(DateFieldRenderer, _super);
function DateFieldRenderer() {
return _super !== null && _super.apply(this, arguments) || this;
}
DateFieldRenderer.defaultProps = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, DateField.defaultProps), { format: 'YYYY-MM-DD' });
DateFieldRenderer = (0, tslib_1.__decorate)([
(0, factory_1.Renderer)({
type: 'date'
})
], DateFieldRenderer);
return DateFieldRenderer;
}(DateField));
exports.DateFieldRenderer = DateFieldRenderer;
var DateTimeFieldRenderer = /** @class */ (function (_super) {
(0, tslib_1.__extends)(DateTimeFieldRenderer, _super);
function DateTimeFieldRenderer() {
return _super !== null && _super.apply(this, arguments) || this;
}
DateTimeFieldRenderer.defaultProps = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, DateField.defaultProps), { format: 'YYYY-MM-DD HH:mm:ss' });
DateTimeFieldRenderer = (0, tslib_1.__decorate)([
(0, factory_1.Renderer)({
type: 'datetime'
})
], DateTimeFieldRenderer);
return DateTimeFieldRenderer;
}(DateField));
exports.DateTimeFieldRenderer = DateTimeFieldRenderer;
var TimeFieldRenderer = /** @class */ (function (_super) {
(0, tslib_1.__extends)(TimeFieldRenderer, _super);
function TimeFieldRenderer() {
return _super !== null && _super.apply(this, arguments) || this;
}
TimeFieldRenderer.defaultProps = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, DateField.defaultProps), { format: 'HH:mm' });
TimeFieldRenderer = (0, tslib_1.__decorate)([
(0, factory_1.Renderer)({
type: 'time'
})
], TimeFieldRenderer);
return TimeFieldRenderer;
}(DateField));
exports.TimeFieldRenderer = TimeFieldRenderer;
var MonthFieldRenderer = /** @class */ (function (_super) {
(0, tslib_1.__extends)(MonthFieldRenderer, _super);
function MonthFieldRenderer() {
return _super !== null && _super.apply(this, arguments) || this;
}
MonthFieldRenderer.defaultProps = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, DateField.defaultProps), { format: 'YYYY-MM' });
MonthFieldRenderer = (0, tslib_1.__decorate)([
(0, factory_1.Renderer)({
type: 'month'
})
], MonthFieldRenderer);
return MonthFieldRenderer;
}(DateField));
exports.MonthFieldRenderer = MonthFieldRenderer;
//# sourceMappingURL=./renderers/Date.js.map
;