承接 mountainclans/livewire-phone-input 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

mountainclans/livewire-phone-input

最新稳定版本:1.2.2

Composer 安装命令:

composer require mountainclans/livewire-phone-input

包简介

Phone input component for Livewire 3

README 文档

README

Доработанная под использование с Vite версия компонента телефонного ввода

Установка

Установите пакет при помощи Composer:

composer require mountainclans/livewire-phone-input

Поскольку функциональность пакета основана на пакете Intl Tel Input, установите его через npm:

npm install intl-tel-input --save

Добавьте в файл проекта resources/js/app.js строки

import intlTelInput from 'intl-tel-input/intlTelInputWithUtils';
import '../../vendor/mountainclans/livewire-phone-input/resources/js/phoneInput';
window.intlTelInput = window.intlTelInputGlobals = intlTelInput;

Добавьте в файл проекта resources/js/app.css строки:

@import 'intl-tel-input/build/css/intlTelInput.css';
@import '../../vendor/mountainclans/livewire-phone-input/resources/css/phoneInput.css';

Обратите внимание, что для корректной стилизации в вашем проекте должен использоваться TailwindCSS.

Добавьте в tailwind.config.js в секцию content:

'./vendor/mountainclans/livewire-phone-input/resources/views/**/*.blade.php'

Добавьте переменную с параметрами конфигурации в подвал:

<script>
    window.laravelTelInputConfig = {
        "allowDropdown": true,
        "autoHideDialCode": true,
        "autoPlaceholder": "polite",
        "customContainer": "",
        "customPlaceholder": null,
        "dropdownContainer": null,
        "excludeCountries": [],
        "formatOnDisplay": true,
        "geoIpLookup": "ipinfo",
        "initialCountry": '{{ $phonePreferredCountry }}',
        "localizedCountries": [],
        "nationalMode": true,
        "onlyCountries": [],
        "placeholderNumberType": "MOBILE",
        "preferredCountries": ["ES", "DE", "RU", "US", "GB", "KZ"],
        "separateDialCode": false,
        "utilsScript": "./utils.js"
    }
</script>

Обязательно переопределите $phonePreferredCountry!

Пример функции для получения этой переменной:

public function preferredPhoneInputLocale(): string
{
   return match(app()->currentLocale()) {
       'ru' => 'RU',
       'kk' => 'KZ',
       default => 'GB',
   };
}

Использование

<x-ui.phone-input wire:model="phone"
                  value="{{ $phone }}"
                  phone-country-input="phoneCountry"
                  :label="__('Phone')"
                  id="phone"
                  name="phone"
                  id="phone"
                  class="additional-class-here"
                  :default-classes="false"
                  initial-country="RU"
/>

Обратите внимание, что для записи кода страны в родительском компоненте должно присутствовать поле phoneCountry (или любое другое, которые вы передадите в prop phone-country-input).

Используйте prop :default-classes="false", если Вы хотите полностью переопределить внешний вид input.

Если Вам необходимо обновить рендеринг компонента phone-input при действиях на бекэнде, воспользуйтесь трейтом RefreshPhoneInputs:

class YourLivewireComponent extends Component
{
    use MountainClans\LivewirePhoneInput\Traits\RefreshPhoneInputs;
    
    // к примеру, после динамического появления телефонного поля в форме
    public function updatedAddPhone(): void
    {
        $this->refreshPhoneInputs();
    }
}

Авторы

Лицензия

The MIT License (MIT). Please see License File for more information.

统计信息

  • 总下载量: 26
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: JavaScript

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-07-03