UNPKG

@fe6/water-pro

Version:

An enterprise-class UI design language and Vue-based implementation

150 lines (135 loc) 4.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _vue = require("vue"); var _vueTypes = _interopRequireDefault(require("../../../_util/vue-types")); var _BaseMixin = _interopRequireDefault(require("../../../_util/BaseMixin")); var _propsUtil = require("../../../_util/props-util"); var _MonthTable = _interopRequireDefault(require("./MonthTable")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function goYear(direction) { this.changeYear(direction); } function noop() {} var MonthPanel = { name: 'MonthPanel', inheritAttrs: false, mixins: [_BaseMixin.default], props: { value: _vueTypes.default.any, defaultValue: _vueTypes.default.any, cellRender: _vueTypes.default.any, contentRender: _vueTypes.default.any, locale: _vueTypes.default.any, rootPrefixCls: _vueTypes.default.string, // onChange: PropTypes.func, disabledDate: _vueTypes.default.func, // onSelect: PropTypes.func, renderFooter: _vueTypes.default.func, changeYear: _vueTypes.default.func.def(noop), type: { type: String, default: '' }, // 用于匹配多选的时候,月和年的时候和日期切换月年的区别 selectType: { type: String, default: '' }, disabledSelectYear: { type: Boolean, default: false } }, data: function data() { var value = this.value, defaultValue = this.defaultValue; // bind methods this.nextYear = goYear.bind(this, 1); this.previousYear = goYear.bind(this, -1); return { sValue: value || defaultValue }; }, watch: { value: function value(val) { this.setState({ sValue: val }); } }, methods: { setAndSelectValue: function setAndSelectValue(value) { var isMultiple = this.type === 'multiple'; this.setValue(isMultiple ? [value] : value); this.__emit('select', isMultiple ? [value] : value); }, setValue: function setValue(value) { if ((0, _propsUtil.hasProp)(this, 'value')) { this.setState({ sValue: value }); } } }, render: function render() { var _a; var sValue = this.sValue, cellRender = this.cellRender, contentRender = this.contentRender, locale = this.locale, rootPrefixCls = this.rootPrefixCls, disabledDate = this.disabledDate, renderFooter = this.renderFooter; var isMultiple = this.type === 'multiple'; var value = isMultiple ? (_a = this.sValue) === null || _a === void 0 ? void 0 : _a[0] : this.sValue; var year = value.year(); var prefixCls = "".concat(rootPrefixCls, "-month-panel"); var footer = renderFooter && renderFooter('month'); var theYear = null; if (!this.disabledSelectYear) { theYear = (0, _vue.createVNode)("div", { "class": "".concat(prefixCls, "-header") }, [(0, _vue.createVNode)("a", { "class": "".concat(prefixCls, "-prev-year-btn"), "role": "button", "onClick": this.previousYear, "title": locale.previousYear }, null), (0, _vue.createVNode)("a", { "class": "".concat(prefixCls, "-year-select"), "role": "button", "onClick": this.$attrs.onYearPanelShow || noop, "title": locale.yearSelect }, [(0, _vue.createVNode)("span", { "class": "".concat(prefixCls, "-year-select-content") }, [year]), (0, _vue.createVNode)("span", { "class": "".concat(prefixCls, "-year-select-arrow") }, [(0, _vue.createTextVNode)("x")])]), (0, _vue.createVNode)("a", { "class": "".concat(prefixCls, "-next-year-btn"), "role": "button", "onClick": this.nextYear, "title": locale.nextYear }, null)]); } return (0, _vue.createVNode)("div", { "class": prefixCls }, [(0, _vue.createVNode)("div", null, [theYear, (0, _vue.createVNode)("div", { "class": "".concat(prefixCls, "-body") }, [(0, _vue.createVNode)(_MonthTable.default, { "disabledDate": disabledDate, "onSelect": this.setAndSelectValue, "locale": locale, "value": sValue, "cellRender": cellRender, "contentRender": contentRender, "prefixCls": prefixCls, "type": this.type, "selectType": this.selectType }, null)]), footer && (0, _vue.createVNode)("div", { "class": "".concat(prefixCls, "-footer") }, [footer])])]); } }; var _default = MonthPanel; exports.default = _default;