@wfrog/vc
Version:
`自用` 的基于 `element-plus` 二次封装的 `vue3` 组件库。追求在业务场景中,尽可能使用更少的代码量来实现需求。 因此在组件封装上,以 `方便` 为主,打包仅 `esm` 模式。
60 lines (58 loc) • 2.24 kB
JavaScript
// vue-script:D:\project\_my\vc\src\components\daterange-picker\index.vue?type=script
import { defineComponent as _defineComponent } from "vue";
import { unref as _unref, isRef as _isRef, mergeProps as _mergeProps, openBlock as _openBlock, createBlock as _createBlock } from "vue";
import { computed } from "vue";
import { ElDatePicker } from "element-plus";
var daterange_picker_default = /* @__PURE__ */ _defineComponent({
__name: "index",
props: {
modelValue: { type: Array, default: () => [] },
valueFormat: { type: String, default: "YYYY-MM-DD" },
limitDays: { type: Number, default: 3 },
includeToday: { type: Boolean, default: false }
},
emits: ["update:modelValue", "change"],
setup(__props, { emit: emits }) {
const props = __props;
const disabledDate = (time) => {
const now = Date.now();
const pickerTime = time.getTime();
const dayTime = 3600 * 1e3 * 24;
const limitTime = dayTime * props.limitDays;
let todayTime = 0;
if (props.limitDays > 0) {
todayTime = props.includeToday ? dayTime : 0;
} else {
todayTime = props.includeToday ? 0 : dayTime;
}
if (props.limitDays < 0) {
return pickerTime + todayTime > now || pickerTime + todayTime < now + limitTime;
}
return pickerTime + todayTime > now + limitTime || pickerTime + todayTime < now;
};
const myValue = computed({
get: () => props.modelValue,
set: (val) => {
emits("update:modelValue", val);
}
});
const handleChange = (val) => {
emits("change", val);
};
return (_ctx, _cache) => {
return _openBlock(), _createBlock(_unref(ElDatePicker), _mergeProps(_ctx.$attrs, {
modelValue: _unref(myValue),
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _isRef(myValue) ? myValue.value = $event : null),
"disabled-date": disabledDate,
type: "daterange",
"value-format": __props.valueFormat,
onChange: handleChange
}), null, 16, ["modelValue", "value-format"]);
};
}
});
// src/components/daterange-picker/index.vue
var daterange_picker_default2 = daterange_picker_default;
export {
daterange_picker_default2 as default
};