amis
Version:
一种MIS页面生成工具
154 lines (153 loc) • 8.07 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.YearControlRenderer = exports.QuarterControlRenderer = exports.MonthControlRenderer = exports.TimeControlRenderer = exports.DatetimeControlRenderer = exports.DateControlRenderer = void 0;
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importDefault(require("react"));
var Item_1 = require("./Item");
var tpl_builtin_1 = require("../../utils/tpl-builtin");
var moment_1 = tslib_1.__importDefault(require("moment"));
require("moment/locale/zh-cn");
var DatePicker_1 = tslib_1.__importDefault(require("../../components/DatePicker"));
var DateControl = /** @class */ (function (_super) {
tslib_1.__extends(DateControl, _super);
function DateControl() {
return _super !== null && _super.apply(this, arguments) || this;
}
DateControl.prototype.componentWillMount = function () {
var _a = this.props, minDate = _a.minDate, maxDate = _a.maxDate, value = _a.value, defaultValue = _a.defaultValue, setPrinstineValue = _a.setPrinstineValue, data = _a.data, format = _a.format, utc = _a.utc;
if (defaultValue && value === defaultValue) {
var date = tpl_builtin_1.filterDate(defaultValue, data, format);
setPrinstineValue((utc ? moment_1.default.utc(date) : date).format(format));
}
this.setState({
minDate: minDate ? tpl_builtin_1.filterDate(minDate, data, format) : undefined,
maxDate: maxDate ? tpl_builtin_1.filterDate(maxDate, data, format) : undefined
});
};
DateControl.prototype.componentWillReceiveProps = function (nextProps) {
var props = this.props;
if (props.defaultValue !== nextProps.defaultValue) {
var date = tpl_builtin_1.filterDate(nextProps.defaultValue, nextProps.data, nextProps.format);
nextProps.setPrinstineValue((nextProps.utc ? moment_1.default.utc(date) : date).format(nextProps.format));
}
if (props.minDate !== nextProps.minDate ||
props.maxDate !== nextProps.maxDate ||
props.data !== nextProps.data) {
this.setState({
minDate: nextProps.minDate
? tpl_builtin_1.filterDate(nextProps.minDate, nextProps.data, this.props.format)
: undefined,
maxDate: nextProps.maxDate
? tpl_builtin_1.filterDate(nextProps.maxDate, nextProps.data, this.props.format)
: undefined
});
}
};
DateControl.prototype.render = function () {
var _a = this.props, className = _a.className, defaultValue = _a.defaultValue, defaultData = _a.defaultData, cx = _a.classnames, minDate = _a.minDate, maxDate = _a.maxDate, type = _a.type, format = _a.format, timeFormat = _a.timeFormat, rest = tslib_1.__rest(_a, ["className", "defaultValue", "defaultData", "classnames", "minDate", "maxDate", "type", "format", "timeFormat"]);
if (type === 'time' && timeFormat) {
format = timeFormat;
}
return (react_1.default.createElement("div", { className: cx("DateControl", className) },
react_1.default.createElement(DatePicker_1.default, tslib_1.__assign({}, rest, { timeFormat: timeFormat, format: format }, this.state, { classnames: cx }))));
};
DateControl.defaultProps = {
format: 'X',
viewMode: 'days',
inputFormat: 'YYYY-MM-DD',
timeConstraints: {
minutes: {
step: 1
}
},
clearable: true
};
return DateControl;
}(react_1.default.PureComponent));
exports.default = DateControl;
var DateControlRenderer = /** @class */ (function (_super) {
tslib_1.__extends(DateControlRenderer, _super);
function DateControlRenderer() {
return _super !== null && _super.apply(this, arguments) || this;
}
DateControlRenderer.defaultProps = tslib_1.__assign(tslib_1.__assign({}, DateControl.defaultProps), { placeholder: 'Date.placeholder', dateFormat: 'YYYY-MM-DD', timeFormat: '', strictMode: false });
DateControlRenderer = tslib_1.__decorate([
Item_1.FormItem({
type: 'date',
weight: -150
})
], DateControlRenderer);
return DateControlRenderer;
}(DateControl));
exports.DateControlRenderer = DateControlRenderer;
var DatetimeControlRenderer = /** @class */ (function (_super) {
tslib_1.__extends(DatetimeControlRenderer, _super);
function DatetimeControlRenderer() {
return _super !== null && _super.apply(this, arguments) || this;
}
DatetimeControlRenderer.defaultProps = tslib_1.__assign(tslib_1.__assign({}, DateControl.defaultProps), { placeholder: 'DateTime.placeholder', inputFormat: 'YYYY-MM-DD HH:mm:ss', dateFormat: 'LL', timeFormat: 'HH:mm:ss', closeOnSelect: false, strictMode: false });
DatetimeControlRenderer = tslib_1.__decorate([
Item_1.FormItem({
type: 'datetime'
})
], DatetimeControlRenderer);
return DatetimeControlRenderer;
}(DateControl));
exports.DatetimeControlRenderer = DatetimeControlRenderer;
var TimeControlRenderer = /** @class */ (function (_super) {
tslib_1.__extends(TimeControlRenderer, _super);
function TimeControlRenderer() {
return _super !== null && _super.apply(this, arguments) || this;
}
TimeControlRenderer.defaultProps = tslib_1.__assign(tslib_1.__assign({}, DateControl.defaultProps), { placeholder: 'Time.placeholder', inputFormat: 'HH:mm', dateFormat: '', timeFormat: 'HH:mm', viewMode: 'time', closeOnSelect: false });
TimeControlRenderer = tslib_1.__decorate([
Item_1.FormItem({
type: 'time'
})
], TimeControlRenderer);
return TimeControlRenderer;
}(DateControl));
exports.TimeControlRenderer = TimeControlRenderer;
var MonthControlRenderer = /** @class */ (function (_super) {
tslib_1.__extends(MonthControlRenderer, _super);
function MonthControlRenderer() {
return _super !== null && _super.apply(this, arguments) || this;
}
MonthControlRenderer.defaultProps = tslib_1.__assign(tslib_1.__assign({}, DateControl.defaultProps), { placeholder: 'Month.placeholder', inputFormat: 'YYYY-MM', dateFormat: 'MM', timeFormat: '', viewMode: 'months', closeOnSelect: true });
MonthControlRenderer = tslib_1.__decorate([
Item_1.FormItem({
type: 'month'
})
], MonthControlRenderer);
return MonthControlRenderer;
}(DateControl));
exports.MonthControlRenderer = MonthControlRenderer;
var QuarterControlRenderer = /** @class */ (function (_super) {
tslib_1.__extends(QuarterControlRenderer, _super);
function QuarterControlRenderer() {
return _super !== null && _super.apply(this, arguments) || this;
}
QuarterControlRenderer.defaultProps = tslib_1.__assign(tslib_1.__assign({}, DateControl.defaultProps), { placeholder: 'Quarter.placeholder', inputFormat: 'YYYY [Q]Q', dateFormat: 'YYYY [Q]Q', timeFormat: '', viewMode: 'quarters', closeOnSelect: true });
QuarterControlRenderer = tslib_1.__decorate([
Item_1.FormItem({
type: 'quarter'
})
], QuarterControlRenderer);
return QuarterControlRenderer;
}(DateControl));
exports.QuarterControlRenderer = QuarterControlRenderer;
var YearControlRenderer = /** @class */ (function (_super) {
tslib_1.__extends(YearControlRenderer, _super);
function YearControlRenderer() {
return _super !== null && _super.apply(this, arguments) || this;
}
YearControlRenderer.defaultProps = tslib_1.__assign(tslib_1.__assign({}, DateControl.defaultProps), { placeholder: 'Year.placeholder', inputFormat: 'YYYY', dateFormat: 'YYYY', timeFormat: '', viewMode: 'years', closeOnSelect: true });
YearControlRenderer = tslib_1.__decorate([
Item_1.FormItem({
type: 'year'
})
], YearControlRenderer);
return YearControlRenderer;
}(DateControl));
exports.YearControlRenderer = YearControlRenderer;
//# sourceMappingURL=./renderers/Form/Date.js.map