省市区

职责:国家标准省 / 市 / 区县主数据,供 addresses 省市区选择。
边界:不维护四级街道;不对接民政部接口。数据只用 CSV 导入。后台不提供单条新增/编辑/删除,可按省软删该省及下属。
阶段:P0。

后台「基础数据 → 省市区」。权限走 Filament Shield(ViewAny:Area 等)。客户可多条地址,供应商一条。

表

表:areas

字段 说明
id 行政区划代码;导入时右补零到至少 6 位(11 → 110000)
parent_id 上级区域;省级为 0
deep 0 省 / 1 市 / 2 区
name 名称(导入取 CSV ext_name,如「北京市」)
initial 拼音首字母
pinyin 拼音
created_at / updated_at / deleted_at 时间戳;软删除

parent_id 不加外键(省级为 0)。parent_id 有索引。

短码右补零若与已有 6 位 id 撞号,保留短码(东莞 4419 / 香港 81 等);列表仍按 6 位显示。

导入

后台「导入 CSV」。文件格式为 AreaCity-JsSpider-StatsGov 的 ok_data_level3.csv:

id,pid,deep,name,pinyin_prefix,pinyin,ext_id,ext_name

CSV 列 写入
id id(右补零,见上)
pid parent_id
deep deep
ext_name name(空则回退 name 列)
pinyin_prefix initial
pinyin pinyin

按 id upsert;再导会覆盖并恢复已软删行。弹窗注明数据来源网址。

地址

表:addresses。morphs('addressable') 挂客户(morphMany)、供应商 / 仓库(morphOne)。

字段 说明
id 主键
addressable_type / addressable_id 多态属主
type 类型,可空(收货 / 办公等)
name / phone 收货人 / 电话,可空
province / province_code 省名 / areas.id,可空
city / city_code 市名 / areas.id,可空
district / district_code 区名 / areas.id,可空
address 详细地址,可空
latitude / longitude 可空
is_default 默认地址;同一属主至多一条为 true
created_at / updated_at / deleted_at 时间戳;软删除

保存时按 *_code 从 areas 回写名称。空地址不落库。后台「基础数据 → 客户 / 供应商」里维护。

验收标准

  • [ ] 后台可列表、搜索、按等级筛选、导入;不可单条新增、编辑、删除。
  • [ ] 能按省软删除该省及其下属市、区。
  • [ ] 能导入 ok_data_level3.csv;名称用 ext_name;id 至少 6 位右补零。
  • [ ] 导入弹窗展示数据来源:https://gitee.com/xiangyuecn/AreaCity-JsSpider-StatsGov

P0 / 延后

P0 延后
三级省市区 + CSV 导入 街道/四级;树形侧栏;民政部接口同步