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 { Property as Const, EventType} from 'sale.checkout.const'; BitrixVue.component('sale-checkout-view-element-input-property-number', { props: ['item', 'index'], methods: { validate() { EventEmitter.emit(EventType.property.validate, {index: this.index}); }, onKeyDown(e) { if ( !isNaN(Number(e.key)) && e.key !== ' ' ) { return; } if (e.ctrlKey || e.metaKey || ['Esc', 'Tab', 'Backspace', 'Delete', 'ArrowLeft', 'ArrowRight', '.'].indexOf(e.key) >= 0 ) { return; } e.preventDefault(); }, onPaste(e) { e.preventDefault(); const pastedText = e.clipboardData.getData('Text'); if (!isNaN(Number(pastedText))) { this.item.value = pastedText.trim(); } this.validate(); }, }, computed: { checkedClassObject() { return { 'is-invalid': this.item.validated === Const.validate.failure, 'is-valid': this.item.validated === Const.validate.successful } }, 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" @keydown="onKeyDown" @keyup="validate" @paste="onPaste" type="text" inputmode="numeric" :placeholder="item.name" v-model="item.value" /> <span class="asterisk-item" v-if="isAsteriskShown" > {{item.name}} </span> </div> ` });