UNPKG

@fe6/water-pro

Version:

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

71 lines (68 loc) 2.09 kB
import { createVNode as _createVNode } from "vue"; import PropTypes from '../../../_util/vue-types'; import BaseMixin from '../../../_util/BaseMixin'; import { getComponent } from '../../../_util/props-util'; import { formatDate } from '../util'; var DateInput = { name: 'DateInput', inheritAttrs: false, mixins: [BaseMixin], props: { prefixCls: PropTypes.string, format: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string), PropTypes.func]), locale: PropTypes.object, selectedValue: PropTypes.object, clearIcon: PropTypes.any, showClear: PropTypes.looseBool, multiplePanelHeaderRender: PropTypes.func }, data: function data() { var _this = this; var selectedValue = this.selectedValue; return { str: selectedValue.map(function (sItem) { return formatDate(sItem, _this.format); }) }; }, watch: { selectedValue: function selectedValue() { var _this2 = this; this.setState({ str: this.selectedValue.map(function (sItem) { return formatDate(sItem, _this2.format); }) }); }, format: function format() { this.setState(); } }, methods: { onClear: function onClear() { this.setState({ str: '' }); this.__emit('clear', null); } }, render: function render() { var locale = this.locale, prefixCls = this.prefixCls, showClear = this.showClear, multiplePanelHeaderRender = this.multiplePanelHeaderRender; var clearIcon = getComponent(this, 'clearIcon'); return _createVNode("div", { "class": "".concat(prefixCls, "-input-wrap") }, [_createVNode("div", { "class": "".concat(prefixCls, "-date-input-wrap") }, [multiplePanelHeaderRender(this.str, this.selectedValue)]), showClear ? _createVNode("a", { "role": "button", "title": locale.clear, "onClick": this.onClear }, [clearIcon || _createVNode("span", { "class": "".concat(prefixCls, "-clear-btn") }, null)]) : null]); } }; export default DateInput;