|
|
<template> <div class="group tw-mb-[20px]"> <div class="element tw-grid tw-grid-cols-1 md:tw-grid-cols-[156px_200px_auto] xl:tw-grid-cols-[156px_200px_auto] tw-gap-[10px]"> <div class="tw-flex tw-items-center"> <label class="tw-font-normal tw-mb-[10px] md:tw-mb-0 t14 md:t16"> <span>{{ $t("Place of delivery")}}: <span class="required t12 md:t14">*</span></span> </label> </div> <elementSelectNew :select="{ id: 'address1', label: '', required: true, }" :isRow="true" :itemsCenter="true" :labelWidth="0" :selectWidth="200" :selectList="selectAddressList" :default="formData.address1" :validation="validation.address1" @change="updateAddress($event)" ></elementSelectNew> <elementInputNew :input="{ id: 'address2', required: true, type: 'text', placeholder: '' }" :maxlength="500" :validation="validation.address2" @change="formData.address2 = $event" > </elementInputNew> </div> <div class="element tw-my-[16px]"> <div class="md:tw-flex tw-items-center"> <label class="tw-block tw-mb-[20px] md:tw-mb-0 md:tw-mr-[10px] tw-min-w-[156px] t14 md:t16"><span>{{ $t('Date of delivery') }}: <span class="required t12 md:t14">*</span></span></label> <selectDate @selected="selecteDateTime($event)"></selectDate> <span v-if="validation.select_date==false" class="required md:tw-ml-[20px] t12 md:t14">{{ $t("Required.") }}</span> </div> </div> <div class="md:tw-flex tw-flex-col"> <label class="tw-block tw-mb-[20px] md:tw-mr-[10px] tw-min-w-[156px] t14 md:t16"><span>{{ $t('Time of delivery') }}: <span class="required t12 md:t14">*</span></span> <span v-if="validation.delivery_type==false" class="required md:tw-ml-[20px] t12 md:t14">{{ $t("Required.") }}</span> </label> <div class="element tw-flex tw-items-center"> <input id="Delivered1" type="radio" value="1" v-model="method" @change="selectRadio()" /> <label for="Delivered1" class=" tw-font-normal t14 md:t16" ><span>{{ $t("Delivered to the exhibition hall on the same day") }}</span></label > </div> <div class="element md:tw-flex tw-items-center tw-mt-[15px]"> <div class="tw-flex tw-items-center"> <input id="Delivered2" type="radio" value="2" v-model="method" @change="selectRadio()" /> <label for="Delivered2" class="t14 md:t16 tw-font-normal" ><span>{{ $t("Delivered to the exhibition site next day") }}</span></label > </div> <div class="tw-flex tw-ml-[35px] tw-mt-[5px] md:tw-ml-[20px] md:tw-mt-[0px]"><v-img max-width="20" :src="require('@/assets/svg/tip.svg')"></v-img><span class="tw-ml-[5px]">{{ $t("Must pay extra pressing fee") }}</span></div> </div> </div> </div> </template> <script> import elementSelectNew from "@/components/newComponent/form/ElementSelectNew"; import elementInputNew from "@/components/newComponent/form/ElementInputNew"; import selectDate from "@/components/service/content/selectDate"; import is from "is_js"; export default { components: { elementSelectNew, elementInputNew, selectDate, }, props: { selectAddressList: { type: Array, }, }, data() { return { method: null, // selectDates: '',
formData: { address1: "0", address2: "", delivery_type: "", select_date: "", }, validation: { address1: true, address2: true, delivery_type: true, select_date: true, }, errors: null, }; }, methods: { reset() { this.formData = { address1: "0", address2: "", delivery_type: "", select_date: "", }; }, validators() { if (is.empty(this.formData.address1) || this.formData.address1 =="0") { this.validation.address1 = false; } else { this.validation.address1 = true; } if (is.empty(this.formData.address2)) { this.validation.address2 = false; } else { this.validation.address2 = true; } if (is.empty(this.formData.delivery_type)) { this.validation.delivery_type = false; } else { this.validation.delivery_type = true; } if (is.empty(this.formData.select_date)) { this.validation.select_date = false; } else { this.validation.select_date = true; } this.errors = Object.entries(this.validation).filter( (e) => e[1] == false ); if (this.errors.length > 0) { return false; } else { return true; } }, selectRadio(){ this.formData.delivery_type = this.method; this.validation.delivery_type = true; this.$emit("ChangeCosts",{type: 'address',value: this.formData}); }, selecteDateTime(value){ if(is.empty(value)){ this.validation.select_date = false; this.formData.select_date = ""; }else{ this.validation.select_date = true; this.formData.select_date = value; } this.$emit("ChangeCosts",{type: 'address',value: this.formData}); }, updateAddress(value){ this.formData.address1 = value; this.$emit("ChangeCosts",{type: 'address',value: this.formData}); } }, }; </script> <style lang="scss" scoped> select { -moz-appearance: none; /* Firefox */ -webkit-appearance: none; /* Safari and Chrome */ appearance: none; background-image: url("~/assets/svg/down-arrow.svg"); background-size: 9px 6px; background-position: right 20px center; background-repeat: no-repeat; } </style>
|