scinote-web/app/javascript/vue/shared/date_picker.vue
2023-08-23 11:59:21 +02:00

46 lines
1.3 KiB
Vue

<template>
<div class="datepicker sci-input-container right-icon">
<input
@change="update"
type="datetime"
class="form-control calendar-input sci-input-field"
:id="this.selectorId"
:placeholder="placeholder || 'dd/mm/yyyy'"
/>
<i class="sn-icon sn-icon-calendar"></i>
</div>
</template>
<script>
import '../../../../vendor/assets/javascripts/bootstrap-datetimepicker';
export default {
name: 'DatePicker',
props: {
placeholder: { type: String },
selectorId: { type: String, required: true },
useCurrent: { type: Boolean, default: true },
defaultValue: { type: Date, default: null }
},
mounted() {
$("#" + this.selectorId).datetimepicker(
{
useCurrent: this.useCurrent,
ignoreReadonly: this.ignoreReadOnly,
locale: this.i18n.locale,
format: $('body').data('datetime-picker-format'),
date: this.defaultValue
}
);
$("#" + this.selectorId).on('dp.change', (e) => this.update(e.date))
},
methods: {
update(value) {
this.$emit('change', (value._isAMomentObject) ? value.toDate() : '');
},
isValidDate(date) {
return (date instanceof Date) && !isNaN(date.getTime());
},
}
}
</script>