/**
* 年月选择
* @author john
* @date 2020/10/20
*/
import MfText from '../text/Text'
import classnames from 'classnames'
import BaseMixin from '../_utils/BaseMixin'
import dayjs from 'dayjs'
import utc from 'dayjs/plugin/utc'
import timezone from 'dayjs/plugin/timezone'
dayjs.extend(utc)
dayjs.extend(timezone)
const tz = dayjs.tz.guess()
export default {
name: 'mf-month-range-picker',
mixins: [BaseMixin],
emits: ['update:modelValue', 'change', 'blur', 'popup-visible-change'],
props: {
modelValue: [String, Array],
placeholder: Array,
disabled: Boolean,
clearable: {
type: Boolean,
default: false
},
// 尺寸
size: {
type: String,
default: 'default'
},
prefixCls: {
type: String,
default: 'mf-month-range-picker'
},
// 下拉框类名
popperClass: String,
// 默认弹出框是打开或者关闭
defaultPopupVisible: {
type: Boolean,
default: false
},
// 禁用日期
disabledDate: Function
},
data() {
return {}
},
methods: {
getValue() {
let { modelValue } = this
if (typeof modelValue == 'string') {
return modelValue.split(',')
} else {
return modelValue
}
}
},
render() {
let {
prefixCls,
size,
placeholder,
popperClass,
clearable,
readonly,
disabled,
defaultPopupVisible,
disabledDate
} = this
const textCls = classnames(`${prefixCls}-readonly`, {
[`${prefixCls}-readonly-${size}`]: size
})
const wrapCls = classnames(prefixCls)
if (readonly) {
return (
)
} else {
let datePickerProps = {
modelValue: this.getValue(),
mode: 'month',
placeholder,
size,
popperClass,
allowClear: clearable,
disabled,
defaultPopupVisible,
'onUpdate:modelValue': (v) => {
this.$emit('update:modelValue', v)
},
onChange: (v) => {
this.$emit('change', v)
},
onBlur: (e) => {
this.$emit('blur', e)
},
onPopupVisibleChange: (val) => {
this.$emit('popup-visible-change', val)
}
}
if (disabledDate) datePickerProps.disabledDate = disabledDate
return (
)
}
}
}