adui
Version:
<div> <img src="https://wxa.wxs.qq.com/mpweb/delivery/legacy/wxadtouch/upload/t1/od834zef_52939fc6.png" style="margin:40px 0 0 -8px; background-color: #fcfcfc; box-shadow: none;" /> </div>
96 lines (86 loc) • 11.3 kB
JavaScript
import * as React from "react";
import PropTypes from "prop-types";
import "./style";
import Icon from "../icon";
import { getDefaultMaxDate, getDefaultMinDate } from "./core";
var prefix = "adui-date";
var Caption = function Caption(_ref) {
var date = _ref.date,
maxDate = _ref.maxDate,
minDate = _ref.minDate,
onDateChange = _ref.onDateChange;
var handleYearChange = function handleYearChange(e) {
var newYear = parseInt(e.currentTarget.value, 10);
var newDate = new Date(date.getTime());
newDate.setFullYear(newYear);
onDateChange(newDate, e);
};
var handleMonthChange = function handleMonthChange(e) {
var newMonth = parseInt(e.currentTarget.value, 10);
var newDate = new Date(date.getTime());
newDate.setMonth(newMonth);
onDateChange(newDate, e);
};
var minYear = minDate.getFullYear();
var maxYear = maxDate.getFullYear();
var years = [maxYear];
for (var year = maxYear - 1; year >= minYear; year -= 1) {
years.push(year);
}
var displayMonth = date.getMonth();
var displayYear = date.getFullYear();
var startMonth = displayYear === minYear ? minDate.getMonth() : 0;
var endMonth = displayYear === maxYear ? maxDate.getMonth() + 1 : 12;
var months = [startMonth];
for (var month = startMonth + 1; month < endMonth; month += 1) {
months.push(month);
}
if (!months.includes(displayMonth)) {
months.unshift(displayMonth);
}
return React.createElement("div", {
className: "".concat(prefix, "-caption")
}, React.createElement("div", {
className: "".concat(prefix, "-selects")
}, React.createElement("div", {
className: "".concat(prefix, "-selectYear")
}, React.createElement("select", {
name: "year",
onChange: handleYearChange,
value: displayYear
}, years.map(function (year) {
return React.createElement("option", {
key: year,
value: year
}, year, "\u5E74");
})), React.createElement(Icon, {
icon: "triangle-down"
})), React.createElement("div", {
className: "".concat(prefix, "-selectMonth")
}, React.createElement("select", {
name: "month",
onChange: handleMonthChange,
value: displayMonth,
"data-value": displayMonth
}, months.map(function (month) {
return React.createElement("option", {
key: month,
value: month
}, month + 1, "\u6708");
})), React.createElement(Icon, {
icon: "triangle-down"
}))));
};
Caption.propTypes = {
date: PropTypes.any,
maxDate: PropTypes.any,
minDate: PropTypes.any,
onDateChange: PropTypes.func.isRequired
};
Caption.defaultProps = {
date: new Date(),
maxDate: getDefaultMaxDate(),
minDate: getDefaultMinDate()
};
export default Caption;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlByb3BUeXBlcyIsIkljb24iLCJnZXREZWZhdWx0TWF4RGF0ZSIsImdldERlZmF1bHRNaW5EYXRlIiwicHJlZml4IiwiQ2FwdGlvbiIsImRhdGUiLCJtYXhEYXRlIiwibWluRGF0ZSIsIm9uRGF0ZUNoYW5nZSIsImhhbmRsZVllYXJDaGFuZ2UiLCJlIiwibmV3WWVhciIsInBhcnNlSW50IiwiY3VycmVudFRhcmdldCIsInZhbHVlIiwibmV3RGF0ZSIsIkRhdGUiLCJnZXRUaW1lIiwic2V0RnVsbFllYXIiLCJoYW5kbGVNb250aENoYW5nZSIsIm5ld01vbnRoIiwic2V0TW9udGgiLCJtaW5ZZWFyIiwiZ2V0RnVsbFllYXIiLCJtYXhZZWFyIiwieWVhcnMiLCJ5ZWFyIiwicHVzaCIsImRpc3BsYXlNb250aCIsImdldE1vbnRoIiwiZGlzcGxheVllYXIiLCJzdGFydE1vbnRoIiwiZW5kTW9udGgiLCJtb250aHMiLCJtb250aCIsImluY2x1ZGVzIiwidW5zaGlmdCIsIm1hcCIsInByb3BUeXBlcyIsImFueSIsImZ1bmMiLCJpc1JlcXVpcmVkIiwiZGVmYXVsdFByb3BzIl0sInNvdXJjZXMiOlsiLi4vLi4vY29tcG9uZW50cy9kYXRlLXBpY2tlci9DYXB0aW9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgXCIuL3N0eWxlXCJcbmltcG9ydCBJY29uIGZyb20gXCIuLi9pY29uXCJcbmltcG9ydCB7IGdldERlZmF1bHRNYXhEYXRlLCBnZXREZWZhdWx0TWluRGF0ZSB9IGZyb20gXCIuL2NvcmVcIlxuXG5jb25zdCBwcmVmaXggPSBcImFkdWktZGF0ZVwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhcHRpb25Qcm9wcyB7XG4gIFtrZXk6IHN0cmluZ106IGFueVxuICBkYXRlOiBEYXRlXG4gIG1heERhdGU6IERhdGVcbiAgbWluRGF0ZTogRGF0ZVxuICBvbkRhdGVDaGFuZ2U6IChkYXRlOiBEYXRlLCBlOiBSZWFjdC5Gb3JtRXZlbnQ8SFRNTFNlbGVjdEVsZW1lbnQ+KSA9PiB2b2lkXG59XG5cbi8qKlxuICog5pel5pyf6YCJ5oupIENhcHRpb25cbiAqL1xuY29uc3QgQ2FwdGlvbjogUmVhY3QuRkM8SUNhcHRpb25Qcm9wcz4gPSAoe1xuICBkYXRlLFxuICBtYXhEYXRlLFxuICBtaW5EYXRlLFxuICBvbkRhdGVDaGFuZ2UsXG59OiBJQ2FwdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IGhhbmRsZVllYXJDaGFuZ2UgPSAoZTogUmVhY3QuRm9ybUV2ZW50PEhUTUxTZWxlY3RFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IG5ld1llYXIgPSBwYXJzZUludChlLmN1cnJlbnRUYXJnZXQudmFsdWUsIDEwKVxuICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSlcbiAgICBuZXdEYXRlLnNldEZ1bGxZZWFyKG5ld1llYXIpXG4gICAgb25EYXRlQ2hhbmdlKG5ld0RhdGUsIGUpXG4gIH1cblxuICBjb25zdCBoYW5kbGVNb250aENoYW5nZSA9IChlOiBSZWFjdC5Gb3JtRXZlbnQ8SFRNTFNlbGVjdEVsZW1lbnQ+KSA9PiB7XG4gICAgY29uc3QgbmV3TW9udGggPSBwYXJzZUludChlLmN1cnJlbnRUYXJnZXQudmFsdWUsIDEwKVxuICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSlcbiAgICBuZXdEYXRlLnNldE1vbnRoKG5ld01vbnRoKVxuICAgIG9uRGF0ZUNoYW5nZShuZXdEYXRlLCBlKVxuICB9XG5cbiAgY29uc3QgbWluWWVhciA9IG1pbkRhdGUuZ2V0RnVsbFllYXIoKVxuICBjb25zdCBtYXhZZWFyID0gbWF4RGF0ZS5nZXRGdWxsWWVhcigpXG4gIGNvbnN0IHllYXJzID0gW21heFllYXJdXG4gIGZvciAobGV0IHllYXIgPSBtYXhZZWFyIC0gMTsgeWVhciA+PSBtaW5ZZWFyOyB5ZWFyIC09IDEpIHtcbiAgICB5ZWFycy5wdXNoKHllYXIpXG4gIH1cblxuICBjb25zdCBkaXNwbGF5TW9udGggPSBkYXRlLmdldE1vbnRoKClcbiAgY29uc3QgZGlzcGxheVllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKClcblxuICBjb25zdCBzdGFydE1vbnRoID0gZGlzcGxheVllYXIgPT09IG1pblllYXIgPyBtaW5EYXRlLmdldE1vbnRoKCkgOiAwXG4gIGNvbnN0IGVuZE1vbnRoID0gZGlzcGxheVllYXIgPT09IG1heFllYXIgPyBtYXhEYXRlLmdldE1vbnRoKCkgKyAxIDogMTJcbiAgY29uc3QgbW9udGhzID0gW3N0YXJ0TW9udGhdXG4gIGZvciAobGV0IG1vbnRoID0gc3RhcnRNb250aCArIDE7IG1vbnRoIDwgZW5kTW9udGg7IG1vbnRoICs9IDEpIHtcbiAgICBtb250aHMucHVzaChtb250aClcbiAgfVxuXG4gIGlmICghbW9udGhzLmluY2x1ZGVzKGRpc3BsYXlNb250aCkpIHtcbiAgICBtb250aHMudW5zaGlmdChkaXNwbGF5TW9udGgpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtwcmVmaXh9LWNhcHRpb25gfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtwcmVmaXh9LXNlbGVjdHNgfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake3ByZWZpeH0tc2VsZWN0WWVhcmB9PlxuICAgICAgICAgIDxzZWxlY3QgbmFtZT1cInllYXJcIiBvbkNoYW5nZT17aGFuZGxlWWVhckNoYW5nZX0gdmFsdWU9e2Rpc3BsYXlZZWFyfT5cbiAgICAgICAgICAgIHt5ZWFycy5tYXAoKHllYXIpID0+IChcbiAgICAgICAgICAgICAgPG9wdGlvbiBrZXk9e3llYXJ9IHZhbHVlPXt5ZWFyfT5cbiAgICAgICAgICAgICAgICB7eWVhcn3lubRcbiAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8SWNvbiBpY29uPVwidHJpYW5nbGUtZG93blwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7cHJlZml4fS1zZWxlY3RNb250aGB9PlxuICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgIG5hbWU9XCJtb250aFwiXG4gICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlTW9udGhDaGFuZ2V9XG4gICAgICAgICAgICB2YWx1ZT17ZGlzcGxheU1vbnRofVxuICAgICAgICAgICAgZGF0YS12YWx1ZT17ZGlzcGxheU1vbnRofVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHttb250aHMubWFwKChtb250aCkgPT4gKFxuICAgICAgICAgICAgICA8b3B0aW9uIGtleT17bW9udGh9IHZhbHVlPXttb250aH0+XG4gICAgICAgICAgICAgICAge21vbnRoICsgMX3mnIhcbiAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8SWNvbiBpY29uPVwidHJpYW5nbGUtZG93blwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuQ2FwdGlvbi5wcm9wVHlwZXMgPSB7XG4gIC8qKlxuICAgKiDml6XmnJ9cbiAgICovXG4gIGRhdGU6IFByb3BUeXBlcy5hbnksXG4gIC8qKlxuICAgKiDmnIDlpKfpmZDliLbml6XmnJ9cbiAgICovXG4gIG1heERhdGU6IFByb3BUeXBlcy5hbnksXG4gIC8qKlxuICAgKiDmnIDlsI/pmZDliLbml6XmnJ9cbiAgICovXG4gIG1pbkRhdGU6IFByb3BUeXBlcy5hbnksXG4gIC8qKlxuICAgKiBoYW5kbGVyXG4gICAqL1xuICBvbkRhdGVDaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59XG5cbkNhcHRpb24uZGVmYXVsdFByb3BzID0ge1xuICBkYXRlOiBuZXcgRGF0ZSgpLFxuICBtYXhEYXRlOiBnZXREZWZhdWx0TWF4RGF0ZSgpLFxuICBtaW5EYXRlOiBnZXREZWZhdWx0TWluRGF0ZSgpLFxufVxuXG5leHBvcnQgZGVmYXVsdCBDYXB0aW9uXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUNBLE9BQU9DLFNBQVAsTUFBc0IsWUFBdEI7QUFDQSxPQUFPLFNBQVA7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLFNBQWpCO0FBQ0EsU0FBU0MsaUJBQVQsRUFBNEJDLGlCQUE1QixRQUFxRCxRQUFyRDtBQUVBLElBQU1DLE1BQU0sR0FBRyxXQUFmOztBQWFBLElBQU1DLE9BQWdDLEdBQUcsU0FBbkNBLE9BQW1DLE9BS3BCO0VBQUEsSUFKbkJDLElBSW1CLFFBSm5CQSxJQUltQjtFQUFBLElBSG5CQyxPQUdtQixRQUhuQkEsT0FHbUI7RUFBQSxJQUZuQkMsT0FFbUIsUUFGbkJBLE9BRW1CO0VBQUEsSUFEbkJDLFlBQ21CLFFBRG5CQSxZQUNtQjs7RUFDbkIsSUFBTUMsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQixDQUFDQyxDQUFELEVBQTJDO0lBQ2xFLElBQU1DLE9BQU8sR0FBR0MsUUFBUSxDQUFDRixDQUFDLENBQUNHLGFBQUYsQ0FBZ0JDLEtBQWpCLEVBQXdCLEVBQXhCLENBQXhCO0lBQ0EsSUFBTUMsT0FBTyxHQUFHLElBQUlDLElBQUosQ0FBU1gsSUFBSSxDQUFDWSxPQUFMLEVBQVQsQ0FBaEI7SUFDQUYsT0FBTyxDQUFDRyxXQUFSLENBQW9CUCxPQUFwQjtJQUNBSCxZQUFZLENBQUNPLE9BQUQsRUFBVUwsQ0FBVixDQUFaO0VBQ0QsQ0FMRDs7RUFPQSxJQUFNUyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQW9CLENBQUNULENBQUQsRUFBMkM7SUFDbkUsSUFBTVUsUUFBUSxHQUFHUixRQUFRLENBQUNGLENBQUMsQ0FBQ0csYUFBRixDQUFnQkMsS0FBakIsRUFBd0IsRUFBeEIsQ0FBekI7SUFDQSxJQUFNQyxPQUFPLEdBQUcsSUFBSUMsSUFBSixDQUFTWCxJQUFJLENBQUNZLE9BQUwsRUFBVCxDQUFoQjtJQUNBRixPQUFPLENBQUNNLFFBQVIsQ0FBaUJELFFBQWpCO0lBQ0FaLFlBQVksQ0FBQ08sT0FBRCxFQUFVTCxDQUFWLENBQVo7RUFDRCxDQUxEOztFQU9BLElBQU1ZLE9BQU8sR0FBR2YsT0FBTyxDQUFDZ0IsV0FBUixFQUFoQjtFQUNBLElBQU1DLE9BQU8sR0FBR2xCLE9BQU8sQ0FBQ2lCLFdBQVIsRUFBaEI7RUFDQSxJQUFNRSxLQUFLLEdBQUcsQ0FBQ0QsT0FBRCxDQUFkOztFQUNBLEtBQUssSUFBSUUsSUFBSSxHQUFHRixPQUFPLEdBQUcsQ0FBMUIsRUFBNkJFLElBQUksSUFBSUosT0FBckMsRUFBOENJLElBQUksSUFBSSxDQUF0RCxFQUF5RDtJQUN2REQsS0FBSyxDQUFDRSxJQUFOLENBQVdELElBQVg7RUFDRDs7RUFFRCxJQUFNRSxZQUFZLEdBQUd2QixJQUFJLENBQUN3QixRQUFMLEVBQXJCO0VBQ0EsSUFBTUMsV0FBVyxHQUFHekIsSUFBSSxDQUFDa0IsV0FBTCxFQUFwQjtFQUVBLElBQU1RLFVBQVUsR0FBR0QsV0FBVyxLQUFLUixPQUFoQixHQUEwQmYsT0FBTyxDQUFDc0IsUUFBUixFQUExQixHQUErQyxDQUFsRTtFQUNBLElBQU1HLFFBQVEsR0FBR0YsV0FBVyxLQUFLTixPQUFoQixHQUEwQmxCLE9BQU8sQ0FBQ3VCLFFBQVIsS0FBcUIsQ0FBL0MsR0FBbUQsRUFBcEU7RUFDQSxJQUFNSSxNQUFNLEdBQUcsQ0FBQ0YsVUFBRCxDQUFmOztFQUNBLEtBQUssSUFBSUcsS0FBSyxHQUFHSCxVQUFVLEdBQUcsQ0FBOUIsRUFBaUNHLEtBQUssR0FBR0YsUUFBekMsRUFBbURFLEtBQUssSUFBSSxDQUE1RCxFQUErRDtJQUM3REQsTUFBTSxDQUFDTixJQUFQLENBQVlPLEtBQVo7RUFDRDs7RUFFRCxJQUFJLENBQUNELE1BQU0sQ0FBQ0UsUUFBUCxDQUFnQlAsWUFBaEIsQ0FBTCxFQUFvQztJQUNsQ0ssTUFBTSxDQUFDRyxPQUFQLENBQWVSLFlBQWY7RUFDRDs7RUFFRCxPQUNFO0lBQUssU0FBUyxZQUFLekIsTUFBTDtFQUFkLEdBQ0U7SUFBSyxTQUFTLFlBQUtBLE1BQUw7RUFBZCxHQUNFO0lBQUssU0FBUyxZQUFLQSxNQUFMO0VBQWQsR0FDRTtJQUFRLElBQUksRUFBQyxNQUFiO0lBQW9CLFFBQVEsRUFBRU0sZ0JBQTlCO0lBQWdELEtBQUssRUFBRXFCO0VBQXZELEdBQ0dMLEtBQUssQ0FBQ1ksR0FBTixDQUFVLFVBQUNYLElBQUQ7SUFBQSxPQUNUO01BQVEsR0FBRyxFQUFFQSxJQUFiO01BQW1CLEtBQUssRUFBRUE7SUFBMUIsR0FDR0EsSUFESCxXQURTO0VBQUEsQ0FBVixDQURILENBREYsRUFRRSxvQkFBQyxJQUFEO0lBQU0sSUFBSSxFQUFDO0VBQVgsRUFSRixDQURGLEVBV0U7SUFBSyxTQUFTLFlBQUt2QixNQUFMO0VBQWQsR0FDRTtJQUNFLElBQUksRUFBQyxPQURQO0lBRUUsUUFBUSxFQUFFZ0IsaUJBRlo7SUFHRSxLQUFLLEVBQUVTLFlBSFQ7SUFJRSxjQUFZQTtFQUpkLEdBTUdLLE1BQU0sQ0FBQ0ksR0FBUCxDQUFXLFVBQUNILEtBQUQ7SUFBQSxPQUNWO01BQVEsR0FBRyxFQUFFQSxLQUFiO01BQW9CLEtBQUssRUFBRUE7SUFBM0IsR0FDR0EsS0FBSyxHQUFHLENBRFgsV0FEVTtFQUFBLENBQVgsQ0FOSCxDQURGLEVBYUUsb0JBQUMsSUFBRDtJQUFNLElBQUksRUFBQztFQUFYLEVBYkYsQ0FYRixDQURGLENBREY7QUErQkQsQ0F4RUQ7O0FBMEVBOUIsT0FBTyxDQUFDa0MsU0FBUixHQUFvQjtFQUlsQmpDLElBQUksRUFBRU4sU0FBUyxDQUFDd0MsR0FKRTtFQVFsQmpDLE9BQU8sRUFBRVAsU0FBUyxDQUFDd0MsR0FSRDtFQVlsQmhDLE9BQU8sRUFBRVIsU0FBUyxDQUFDd0MsR0FaRDtFQWdCbEIvQixZQUFZLEVBQUVULFNBQVMsQ0FBQ3lDLElBQVYsQ0FBZUM7QUFoQlgsQ0FBcEI7QUFtQkFyQyxPQUFPLENBQUNzQyxZQUFSLEdBQXVCO0VBQ3JCckMsSUFBSSxFQUFFLElBQUlXLElBQUosRUFEZTtFQUVyQlYsT0FBTyxFQUFFTCxpQkFBaUIsRUFGTDtFQUdyQk0sT0FBTyxFQUFFTCxpQkFBaUI7QUFITCxDQUF2QjtBQU1BLGVBQWVFLE9BQWYifQ==