Search by

zgy-dcat / distpicker

gy23rm

Distpicker extension for dcat-admin

Package info

github.com/gy23rm/dcat-distpicker

pkg:composer/zgy-dcat/distpicker

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

v2.2.1 2026-08-31 07:34 UTC

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 1013 / PHP 8.18.5)

安装

composer require "zgy-dcat/distpicker:dev-master"

安装后扩展会在后台自动识别。

发布资源(必须,否则 JS 加载 404)

composer 方式安装后,扩展静态资源不会自动发布,需要执行一次:

php artisan admin:ext-update zgy-dcat/distpicker

该命令会发布 distpicker.jspublic/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文件.

鸣谢

由衷感谢以下开源软件、框架等(包括但不限于)

License

licensed under The MIT License (MIT).