地区管理
地区管理以省、市、区县为主要管理层级,后端还保留街道和村庄数据能力。当前管理页面主要使用地区树和各层级详情、列表接口。
页面结构
- 左侧:地区树,用于快速选择区域。
- 右侧:当前区域详情和下级区域列表。
- 下级区域较多时,右侧内容区域支持独立垂直滚动。
地区树默认展开省份和城市层级,区县默认不展开,以避免首次渲染大量节点。后端接口耗时较短但页面仍慢时,应重点检查前端是否一次展开和渲染了全部节点。
加载方式
GET /area/tree 返回树结构,可以使用 maxLevel 控制层级。选中节点后,根据区域类型调用对应详情或下级列表接口。
页面展示所需接口不应因为前端权限判断而静默跳过;前端正常调用,由后端返回 403 表达无权限。前端展示类元素才使用 view: 权限控制。
权限设计
地区树、各层级详情、城市列表、区县列表以及各层级增删改均应有明确接口资源。只使用地区树时,勾选未被页面调用的独立列表权限不会产生效果;这属于接口是否实际被调用的问题,不是权限系统失效。
数据关系
地区上下级目前主要通过区域编码关联,不完全依赖数据库主键。因此当前删除不做复杂的跨业务关联性检查;如果删除后重新创建相同编码,可以恢复编码引用关系。
这并不意味着生产环境可以随意删除地区。涉及订单、地址或统计数据的项目,应在自己的业务 Service 中增加编码引用保护。
性能建议
- 首次只请求页面实际需要的最大层级。
- 默认展开有限层级,不一次展开所有区县。
- 树数据未变化时避免重复请求。
- 选中节点后只刷新右侧受影响数据。
- 大体量街道、村庄数据不建议直接加入首屏树。