Distpicker 是一个中国省市区三级联动选择组件,这个包是基于 Distpicker
的 dcat-admin
扩展,用来将 Distpicker
集成进 dcat-admin
的表单中。如果此插件给你带来的帮助,麻烦给我一个 star
。如果在使用过程中发现地区不完整的情况,欢迎随时反馈给我。
- php >= 7.4
- laravel >= v8.0.0
- dcat-admin >= v2.2.0
首先
# jqhph/dcat-admin 1.x
composer require "super-eggs/dcat-distpicker:^1.0"
# jqhph/dcat-admin 2.x
composer require "super-eggs/dcat-distpicker:^2.0"
然后: (dcat-admin 2.x 无需执行!!!)
php artisan admin:import dcat-distpicker
后台开启
比如在表中有三个字段province_id
, city_id
, district_id
, 在form表单中使用它:
$form->distpicker(['province_id', 'city_id', 'district_id']);
设置默认值
$form->distpicker([
'province_id' => '省份',
'city_id' => '市',
'district_id' => '区'
], '地域选择')->default([
'province' => 130000,
'city' => 130200,
'district' => 130203,
]);
可以设置每个字段的placeholder
// 省、市、区
$form->distpicker([
'province_id' => '省',
'city_id' => '市',
'district_id' => '区'
]);
// 省、市 (Available in v2.1.0+)
$form->distpicker([
'province_id' => '省',
'city_id' => '市',
]);
// 只显示省 (Available in v2.1.0+)
$form->distpicker([
'province_id' => '省',
]);
设置label
$form->distpicker(['province_id', 'city_id', 'district_id'], '请选择区域');
设置自动选择, 可以设置1,2,3 表示自动选择到第几级
$form->distpicker(['province_id', 'city_id', 'district_id'])->autoselect(1);
$filter->distpicker('province_id', 'city_id', 'district_id', '地域选择');
筛选同样支持多级选择:
// 省、市 (Available in v2.1.0+)
$filter->distpicker('province_id', 'city_id','', '地域选择');
//or
$filter->distpicker('province_id', 'city_id');
// 只显示省 (Available in v2.1.0+)
$filter->distpicker('province_id','','', '地域选择');
//or
$filter->distpicker('province_id');
省市区名称回显 (Available in v2.1.0+):
$grid->column('province_id')->distpicker();
$grid->column('city_id')->distpicker();
$grid->column('district_id')->distpicker();
并且提供了一个全局可用的辅助函数:
use SuperEggs\DcatDistpicker\DcatDistpickerHelper;
DcatDistpickerHelper::getAreaName($code); // return string
Distpicker 所使用的地域编码是基于国家统计局发布的数据, 数据字典为china_area.json
文件.
由衷感谢以下开源软件、框架等(包括但不限于)
licensed under The MIT License (MIT).