Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/cvetdv.ru/bitrix/js/sale/checkout/view/element/input/src/ |
Upload File : |
import { BitrixVue } from 'ui.vue'; import { EventEmitter } from 'main.core.events'; import { PhoneFilter as Filter, PhoneFormatter as Formatter } from 'ui.type'; import { Property as Const, EventType } from 'sale.checkout.const'; BitrixVue.component('sale-checkout-view-element-input-property-phone', { props: ['item', 'index'], methods: { validate() { EventEmitter.emit(EventType.property.validate, { index: this.index }); }, onKeyDown(e) { let value = e.key; if (Filter.replace(value) !== '') { return; } if (['Esc', 'Delete', 'Backspace', 'Tab'].indexOf(e.key) >= 0) { return; } if (e.ctrlKey || e.metaKey) { return; } e.preventDefault(); }, onInput() { let value = Formatter.formatValue(this.value); if (this.value !== value) { this.validate(); this.value = value; } }, }, computed: { checkedClassObject() { return { 'is-invalid': this.item.validated === Const.validate.failure, 'is-valid': this.item.validated === Const.validate.successful, }; }, value: { get() { return this.item.value; }, set(newValue) { this.item.value = newValue; }, }, isEmpty() { return this.item.value === ''; }, isRequired() { return this.item.required === 'Y'; }, isAsteriskShown() { return this.isEmpty && this.isRequired; }, }, // language=Vue template: ` <div class="form-wrap form-asterisk" :class="checkedClassObject"> <input class="form-control form-control-lg" :class="checkedClassObject" @blur="validate" @input="onInput" @keydown="onKeyDown" v-model="value" autocomplete="tel" inputmode="tel" :placeholder="item.name" /> <span class="asterisk-item" v-if="isAsteriskShown" > {{item.name}} </span> </div> `, });