base_ui/components/other/DateComponent.vue

121 lines
3.3 KiB
Vue
Raw Permalink Normal View History

2025-02-01 09:34:55 +00:00
<template>
<div class="row form-group mt-3" :key="$attrs.key">
<label
:for="localFormElement.key"
:class="$attrs.labelClass ?? 'col-md-3'"
>{{ localFormElement.label }}</label
>
<PersianDatepicker
v-if="localFormElement?.savetype == 'time'"
append-to="body"
:popover="{
placement: 'left',
offsetX: 10,
offsetY: 10,
}"
editable
color="#00acc1"
container="form-group"
:class="[$attrs.inputClass ?? ' col-md-9', { error: hasError }]"
class="date-picker mt-2"
v-model="textValue"
@input="$emit('oninput', $event)"
:placeholder="localFormElement.placeholder"
:type="'time'"
/>
<PersianDatepicker
v-else-if="localFormElement?.subtype == 'simple'"
append-to="body"
:popover="{
placement: 'left',
offsetX: 10,
offsetY: 10,
}"
editable
simple
color="#00acc1"
container="form-group"
:class="[$attrs.inputClass ?? ' col-md-9', { error: hasError }]"
class="date-picker mt-2"
v-model="textValue"
:format="getFormat()"
:display-format="getDisplayFormat()"
@input="$emit('oninput', $event)"
:placeholder="localFormElement.placeholder"
:type="'date'"
/>
<PersianDatepicker
v-else
append-to="body"
:popover="{
placement: 'left',
offsetX: 10,
offsetY: 10,
}"
editable
color="#00acc1"
container="form-group"
:class="[$attrs.inputClass ?? ' col-md-9', { error: hasError }]"
class="date-picker mt-2"
v-model="textValue"
:format="getFormat()"
:display-format="getDisplayFormat()"
@input="$emit('oninput', $event)"
:placeholder="localFormElement.placeholder"
:type="'date'"
/>
</div>
</template>
<script>
import formBuilderMixin from "~/extensions/formBuilderExtension.js";
// import datePicker from "vue3-persian-datetime-picker";
export default {
extends: formBuilderMixin,
data() {
return {
date: "",
};
},
methods: {
getFormat() {
if (
this.localFormElement?.savetype == "datetime" ||
this.localFormElement?.savetype == "timestamp"
)
return "YYYY-MM-DD HH:mm";
else if (this.localFormElement?.savetype == "date") return "YYYY-MM-DD";
else if (this.localFormElement?.savetype == "jdate")
return "jYYYY/jMM/jDD";
else if (this.localFormElement?.savetype == "time") return "time";
else return "jYYYY/jMM/jDD";
},
getDisplayFormat() {
if (this.localFormElement?.displaytype == "datetime")
return "jYYYY/jMM/jDD HH:mm";
if (this.localFormElement?.displaytype == "jdatetime")
return "jYYYY/jMM/jDD HH:mm";
else if (this.localFormElement?.displaytype == "date")
return "YYYY-MM-DD";
else if (this.localFormElement?.displaytype == "jdate")
return "jYYYY/jMM/jDD";
else if (this.localFormElement?.displaytype == "time") return "time";
else return "jYYYY/jMM/jDD";
},
},
components: {
// datePicker,
},
};
</script>
<style lang="scss">
.form-group.inside-entity .date-picker .vpd-input-group .vpd-icon-btn {
//right: 90% !important;
right: unset !important;
left:0;
height: 100% !important;
}
</style>