zgy-dcat / distpicker
Distpicker extension for dcat-admin
Requires
- php: >=8.1
- zgy-dcat/laravel-admin: dev-master
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-08-31 07:38:21 UTC
README
super-eggs/dcat-distpicker 的永久维护 fork。本项目持续跟进 Laravel / PHP 新版本兼容、安全修复和功能增强。
推荐环境
- php >= 8.1
- laravel >= v10.0.0
- zgy-dcat/laravel-admin (dcat-admin 永久 fork,支持 Laravel 10
13 / PHP 8.18.5)
安装
composer require "zgy-dcat/distpicker:dev-master"
安装后扩展会在后台自动识别。
发布资源(必须,否则 JS 加载 404)
composer 方式安装后,扩展静态资源不会自动发布,需要执行一次:
php artisan admin:ext-update zgy-dcat/distpicker
该命令会发布 distpicker.js 到 public/vendor/dcat-admin-extensions/zgy-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
注意:虽然包名已改为
zgy-dcat/distpicker,PHP 命名空间保持不变(SuperEggs\DcatDistpicker\),这是有意设计,便于旧项目无缝替换,无需改动现有代码。
地区编码数据
Distpicker 所使用的地域编码是基于国家统计局发布的数据, 数据字典为china_area.json文件.
鸣谢
由衷感谢以下开源软件、框架等(包括但不限于)
- laravel
- jqhph/dcat-admin / zgy-dcat/laravel-admin(本包所依赖的永久 fork)
- fengyuanchen/distpicker
- laravel-admin-extensions/china-distpicker
License
licensed under The MIT License (MIT).