You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
willaengine/resources/js/Global/components/Inputs/PersianDate.vue

80 lines
2.3 KiB

<template>
<div>
<v-text-field
v-model="dateShow"
:label="label"
prepend-icon="WMi-calendar-alt"
color="purple"
:id="'my-custom-date-' + uniqueId"
readonly
:color="color"
@click="show = true"
/>
<date-picker
v-model="dateShow"
locale="fa,en"
:locale-config="localeConfig"
:format="displayFormat"
@change="$emit('input', $event.format(format))"
:type="type"
:auto-submit="true"
:element="'my-custom-date-' + uniqueId"
:editable="true"
:show="show"
:min="min"
:max="max"
@close="show = false"
:color="color"
/>
</div>
</template>
<script>
import VuePersianDatetimePicker from 'vue-persian-datetime-picker'
import moment from 'jalali-moment';
export default {
components: {
datePicker: VuePersianDatetimePicker
},
props: {
color: {default: 'black'},
min: {default: null},
max: {default: null},
displayFormat: {default: 'jDD jMMMM jYYYY ساعت HH:mm'},
format: {default: 'YYYY-MM-DD HH:mm'},
type: {default: 'datetime'},
label: {default: 'در تاریخ '},
value: {default: null},
},
data: () => ({
localeConfig: {
fa: {
displayFormat: 'jYYYY/jMM/jDD HH:mm',
inputFormat: 'YYYY-MM-DD HH:mm',
lang: {label: 'شمسی'}
},
en: {
displayFormat: 'YYYY/MM/DD HH:mm',
inputFormat: 'YYYY-MM-DD HH:mm',
lang: {label: 'Gregorian'}
}
},
show: false,
uniqueId: Math.floor(Math.random() * 10000)
}),
computed: {
dateShow: {
get() {
if (this.value) {
return moment(new Date(this.value)).format(this.displayFormat);
}
return moment(new Date()).format(this.displayFormat);
},
set(value) {
}
},
}
}
</script>