| 
									
										
										
										
											2024-01-02 08:32:21 +00:00
										 |  |  | {{define "component/persianDatepickerTemplate"}} | 
					
						
							|  |  |  | <template> | 
					
						
							|  |  |  |     <div> | 
					
						
							|  |  |  |         <a-input :value="value" type="text" v-model="date" data-jdp class="persian-datepicker" | 
					
						
							| 
									
										
										
										
											2025-03-08 15:41:27 +00:00
										 |  |  |             @input="$emit('input', convertToGregorian($event.target.value)); jalaliDatepicker.hide();" | 
					
						
							|  |  |  |             :placeholder="placeholder"> | 
					
						
							| 
									
										
										
										
											2024-01-02 08:32:21 +00:00
										 |  |  |             <template #addonAfter> | 
					
						
							| 
									
										
										
										
											2025-04-06 09:40:33 +00:00
										 |  |  |                 <a-icon type="calendar" :style="{ fontSize: '14px', opacity: '0.5' }" /> | 
					
						
							| 
									
										
										
										
											2024-01-02 08:32:21 +00:00
										 |  |  |             </template> | 
					
						
							|  |  |  |         </a-input> | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  | </template> | 
					
						
							|  |  |  | {{end}} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-17 11:26:07 +00:00
										 |  |  | {{define "component/aPersianDatepicker"}} | 
					
						
							| 
									
										
										
										
											2025-03-08 15:41:27 +00:00
										 |  |  | <link rel="stylesheet" href="{{ .base_path }}assets/persian-datepicker/persian-datepicker.min.css?{{ .cur_ver }}" /> | 
					
						
							| 
									
										
										
										
											2024-04-17 13:56:33 +00:00
										 |  |  | <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 08:32:21 +00:00
										 |  |  | <script> | 
					
						
							|  |  |  |     const persianDatepicker = {}; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-08 15:41:27 +00:00
										 |  |  |     Vue.component('a-persian-datepicker', { | 
					
						
							|  |  |  |         props: { | 
					
						
							|  |  |  |             'format': { | 
					
						
							|  |  |  |                 type: undefined, | 
					
						
							|  |  |  |                 required: false, | 
					
						
							|  |  |  |             }, | 
					
						
							|  |  |  |             'value': { | 
					
						
							|  |  |  |                 type: String, | 
					
						
							|  |  |  |                 required: false, | 
					
						
							|  |  |  |             }, | 
					
						
							|  |  |  |             'placeholder': { | 
					
						
							|  |  |  |                 type: String, | 
					
						
							|  |  |  |                 required: false, | 
					
						
							|  |  |  |             }, | 
					
						
							|  |  |  |         }, | 
					
						
							| 
									
										
										
										
											2024-01-02 08:32:21 +00:00
										 |  |  |         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, | 
					
						
							| 
									
										
										
										
											2024-01-23 19:46:33 +00:00
										 |  |  |                     zIndex: '9999', | 
					
						
							| 
									
										
										
										
											2024-01-02 08:32:21 +00:00
										 |  |  |                     hideAfterChange: true, | 
					
						
							|  |  |  |                     useDropDownYears: false, | 
					
						
							|  |  |  |                     changeMonthRotateYear: true, | 
					
						
							|  |  |  |                 }); | 
					
						
							|  |  |  |             }, | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | </script> | 
					
						
							| 
									
										
										
										
											2025-03-08 15:41:27 +00:00
										 |  |  | {{end}} |