Files
trihuy-russian/web/html/component/aPersianDatepicker.html
T

73 lines
2.4 KiB
HTML
Raw Normal View History

2024-01-02 09:32:21 +01:00
{{define "component/persianDatepickerTemplate"}}
<template>
<div>
<a-input :value="value" type="text" v-model="date" data-jdp class="persian-datepicker"
2025-03-08 22:41:27 +07:00
@input="$emit('input', convertToGregorian($event.target.value)); jalaliDatepicker.hide();"
:placeholder="placeholder">
2024-01-02 09:32:21 +01:00
<template #addonAfter>
2025-04-06 16:40:33 +07:00
<a-icon type="calendar" :style="{ fontSize: '14px', opacity: '0.5' }" />
2024-01-02 09:32:21 +01:00
</template>
</a-input>
</div>
</template>
{{end}}
2025-03-17 18:26:07 +07:00
{{define "component/aPersianDatepicker"}}
2025-03-08 22:41:27 +07:00
<link rel="stylesheet" href="{{ .base_path }}assets/persian-datepicker/persian-datepicker.min.css?{{ .cur_ver }}" />
2024-04-17 17:26:33 +03:30
<script src="{{ .base_path }}assets/moment/moment-jalali.min.js?{{ .cur_ver }}"></script>
<script src="{{ .base_path }}assets/persian-datepicker/persian-datepicker.min.js?{{ .cur_ver }}"></script>
2024-01-02 09:32:21 +01:00
<script>
const persianDatepicker = {};
2025-03-08 22:41:27 +07:00
Vue.component('a-persian-datepicker', {
props: {
'format': {
type: undefined,
required: false,
},
'value': {
type: String,
required: false,
},
'placeholder': {
type: String,
required: false,
},
},
template: `{{template "component/persianDatepickerTemplate" .}}`,
2024-01-02 09:32:21 +01:00
data() {
return {
date: '',
persianDatepicker,
};
},
watch: {
2026-05-04 13:20:24 +02:00
value: function(date) {
2024-01-02 09:32:21 +01:00
this.date = this.convertToJalalian(date)
}
},
mounted() {
this.date = this.convertToJalalian(this.value)
this.listenToDatepicker()
},
methods: {
convertToGregorian(date) {
2026-05-04 13:20:24 +02:00
return date ? moment(moment(date, 'jYYYY/jMM/jDD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss')) :
null
2024-01-02 09:32:21 +01:00
},
convertToJalalian(date) {
return date && moment.isMoment(date) ? date.format('jYYYY/jMM/jDD HH:mm:ss') : null
},
listenToDatepicker() {
jalaliDatepicker.startWatch({
time: true,
2024-01-23 20:46:33 +01:00
zIndex: '9999',
2024-01-02 09:32:21 +01:00
hideAfterChange: true,
useDropDownYears: false,
changeMonthRotateYear: true,
});
},
}
});
</script>
2025-03-08 22:41:27 +07:00
{{end}}