mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-11-11 10:06:53 +08:00
46 lines
1.3 KiB
Vue
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>
|