diff options
| author | Ali Rahimi <alirahimi818@gmail.com> | 2024-01-02 11:32:21 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-02 11:32:21 +0300 |
| commit | c76199514a62c921901b2b2a1c4dd3f93ff8df2a (patch) | |
| tree | ef82233fb8e7035be22c21a7375be6d0fb1c8868 /web/html/xui/component | |
| parent | 31e9734414f084b9d1725d5ae9be46d3720ac122 (diff) | |
added Jalalian datepicker (shamsi) (#1460)
* added datepicker option in setting page
jalalian datepicker component was added
translate files for datepicker updated
* dark mode bug fixed
Diffstat (limited to 'web/html/xui/component')
| -rw-r--r-- | web/html/xui/component/persianDatepicker.html | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/web/html/xui/component/persianDatepicker.html b/web/html/xui/component/persianDatepicker.html new file mode 100644 index 00000000..34ae4f8d --- /dev/null +++ b/web/html/xui/component/persianDatepicker.html @@ -0,0 +1,60 @@ +{{define "component/persianDatepickerTemplate"}} +<template> + <div> + <a-input :value="value" type="text" v-model="date" data-jdp class="persian-datepicker" + @input="$emit('input', convertToGregorian($event.target.value)); jalaliDatepicker.hide();" + placeholder="انتخاب تاریخ"> + <template #addonAfter> + <a-icon type="calendar" style="font-size: 16px;"/> + </template> + </a-input> + </div> +</template> +{{end}} + +{{define "component/persianDatepicker"}} +<link rel="stylesheet" href="{{ .base_path }}assets/persian-datepicker/persian-datepicker.min.css"/> +<script src="{{ .base_path }}assets/moment/moment-jalali.min.js"></script> +<script src="{{ .base_path }}assets/persian-datepicker/persian-datepicker.min.js"></script> +<script> + + const persianDatepicker = {}; + + Vue.component('persian-datepicker', { + props: ['dropdown-class-name', 'format', 'value'], + template: `{{template "component/persianDatepickerTemplate"}}`, + data() { + return { + date: '', + persianDatepicker, + }; + }, + watch: { + value: function (date) { + this.date = this.convertToJalalian(date) + } + }, + mounted() { + this.date = this.convertToJalalian(this.value) + this.listenToDatepicker() + }, + methods: { + convertToGregorian(date) { + return date ? moment(moment(date, 'jYYYY/jMM/jDD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss')) : null + }, + convertToJalalian(date) { + return date && moment.isMoment(date) ? date.format('jYYYY/jMM/jDD HH:mm:ss') : null + }, + listenToDatepicker() { + jalaliDatepicker.startWatch({ + time: true, + container: '.ant-modal-wrap', + hideAfterChange: true, + useDropDownYears: false, + changeMonthRotateYear: true, + }); + }, + } + }); +</script> +{{end}}
\ No newline at end of file |
