Skip to content
Snippets Groups Projects

Use the Datepicker from Vue.js for the Form-Generator

Merged Kimia Beheshti requested to merge Hotfix/1197-Datepicker into master
4 files
+ 33
41
Compare changes
  • Side-by-side
  • Inline
Files
4
<template>
<template>
<datepicker
<div id="datepicker">
:id="cssId"
<b-form-datepicker
:language="datepickerLanguage[this.languageCode]"
:id="cssId"
:calendar-button="true"
size="sm"
calendar-button-icon="material-icons"
v-model="selectedDate"
calendar-button-icon-content="date_range"
:locale="languageCode"
v-model="selectedDate"
:date-format-options="{ year: 'numeric', month: 'long', day: 'numeric' }"
:bootstrap-styling="true"
:disabled="disabledMode || locked"
:full-month-name="true"
@input="updateFixedValuesOverwrite"
format="dd MMMM yyyy"
:required="required"
@input="updateFixedValuesOverwrite"
calendar-width="100%"
:disabled="disabledMode || locked"
></b-form-datepicker>
:required="required"
</div>
/>
</template>
</template>
<script lang="ts">
<script lang="ts">
import Vue from 'vue';
import Vue from 'vue';
import Datepicker from 'vuejs-datepicker';
import { de, en } from 'vuejs-datepicker/dist/locale';
import FieldReader from '@/util/FieldReader';
import FieldReader from '@/util/FieldReader';
export default Vue.extend({
export default Vue.extend({
@@ -43,14 +39,12 @@ export default Vue.extend({
@@ -43,14 +39,12 @@ export default Vue.extend({
},
},
data() {
data() {
return {
return {
datepickerLanguage: {
formatDate: '',
de,
selectedDate: '',
en,
},
selectedDate: new Date(),
};
};
},
},
props: {
props: {
 
languageCode: String,
cssId: String,
cssId: String,
invisible: Boolean,
invisible: Boolean,
locked: Boolean,
locked: Boolean,
@@ -65,9 +59,6 @@ export default Vue.extend({
@@ -65,9 +59,6 @@ export default Vue.extend({
updateFixedValues: Function,
updateFixedValues: Function,
v: Object,
v: Object,
},
},
components: {
Datepicker,
},
methods: {
methods: {
replacePlaceholder() {
replacePlaceholder() {
if (this.checkDataField(this.formData, this.nodeName)) {
if (this.checkDataField(this.formData, this.nodeName)) {
@@ -75,19 +66,19 @@ export default Vue.extend({
@@ -75,19 +66,19 @@ export default Vue.extend({
if (this.fixedValueMode) {
if (this.fixedValueMode) {
return;
return;
}
}
this.selectedDate = new Date();
this.selectedDate = new Date().toString();
} else if (this.formData[this.nodeName][0]['value'] === '') {
} else if (this.formData[this.nodeName][0]['value'] === '') {
this.selectedDate = new Date();
this.selectedDate = '';
} else {
} else {
this.selectedDate = new Date(
this.selectedDate =
this.formData[this.nodeName][0]['value']
this.formData[this.nodeName][0]['value']
);
;
}
}
this.$set(
this.$set(
this.formData[this.nodeName][0],
this.formData[this.nodeName][0],
'value',
'value',
this.selectedDate.toISOString().slice(0, 10)
this.selectedDate,
);
);
}
}
},
},
@@ -96,21 +87,25 @@ export default Vue.extend({
@@ -96,21 +87,25 @@ export default Vue.extend({
this.formData,
this.formData,
this.v,
this.v,
this.nodeName,
this.nodeName,
this.selectedDate.toISOString().slice(0, 10),
this.selectedDate,
this.$set
this.$set
);
);
this.updateFixedValues();
this.updateFixedValues();
},
},
 
onContext(ctx: any) {
 
this.formatDate= ctx.selectedFormatted
 
 
},
},
},
});
});
</script>
</script>
<style>
<style>
.vdp-datepicker .form-control {
#datepicker .btn {
background-color: #ffffff;
margin: 0;
}
background-color: #eceded;
.vdp-datepicker__calendar-button {
border: 1px solid #cfd1d2;
height: calc(1.4em + 0.75rem + 2px);
border-radius: 0;
}
}
</style>
</style>
Loading