mirror of
				https://github.com/scinote-eln/scinote-web.git
				synced 2025-10-28 07:00:24 +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>
 |