| 地区名称 | 地区id | 层级 | 上级地区 | 地区编码 | 排序 | 状态 | 操作 | |
|---|---|---|---|---|---|---|---|---|
| ▼北京市 | 1001 | 省级 | — | 110000 | 1 | 启用 | ||
| ▼北京城区 | 1002 | 市级 | 北京市 | 110100 | 1 | 启用 | ||
| ▼浙江省 | 1009 | 省级 | — | 330000 | 2 | 启用 | ||
| ▼杭州市 | 1010 | 市级 | 浙江省 | 330100 | 1 | 启用 | ||
| ▼宁波市 | 1015 | 市级 | 浙江省 | 330200 | 2 | 启用 | ||
| ·温州市 | 1018 | 市级 | 浙江省 | 330300 | 3 | 启用 | ||
| ·嘉兴市 | 1019 | 市级 | 浙江省 | 330400 | 4 | 启用 | ||
| ·台州市 | 1020 | 市级 | 浙江省 | 331000 | 5 | 停用 |
共 20 条
跳至页
消费端下拉示意(权限项新增场景)
所有引用地区的下拉数据源均指向本页地区字典;下拉中过滤掉"停用"项,底部固定一个入口按钮跳到本页维护。
下拉展开态
北京市 / 北京城区 / 朝阳区
历史数据回显态(订单详情)
订单号:20260115120333001
下单地区:北京市 / 北京城区 / 通州区 该地区已停用
停用只影响新增选择,历史订单地区名称照常展示,报表口径不漂。
页面变更功能说明
- 数据源改造:地区从硬编码枚举抽为独立字典表,字段=地区id(系统内部)/ 编码 / 名称 / 层级 / 上级 / 排序 / 状态,所有消费端下拉(权限项、学员筛选、订单筛选)统一读此表。
- 层级规则:省=1、市=2、区县=3,创建时由上级自动推导,编辑态不可改;直辖市按三级树维护——省级"北京市"下新增市级分组节点(如"北京城区")承载区县级子项,与其他省份结构保持一致,避免级联层级不齐。
- 编辑态字段锁定:上级地区、层级 在编辑 modal 内置灰——避免误改导致子树断裂和历史快照错位;地区编码 已放开可编辑,用于兼容 GB/T 2260 每年行政区划调整(合并/更名/新增)时的编码变更,保存时后端二次校验"编码全局唯一 + 未被下游引用",历史订单/学员选择仍按支付/选择时刻快照展示旧编码,不回溯改写;地区id(#NNNN)任何时刻均不可编辑。
- 地区id:表格中作为独立列展示(紧随"地区名称"之后,宽度 100px、居中),列内直接是 4 位数字(如 1001),不再叠 # 前缀、不再挤在名称后当弱徽标——由系统在"保存新增"时按序号自动分配、全平台唯一,跟行政区划语义解耦(不受 GB/T 2260 更新影响),供接口主键、日志目标定位、跨库关联使用;用户看不到"填 id"的入口,编辑 modal 内该字段只读。
- 层级展开图标:树形表格的展开/收起改为浅蓝圆角方框 + ▼ 三角形——收起态三角形旋转 -90°(朝右)示意"可点击展开",展开态旋转 0°(朝下、底色实蓝白字)示意"当前已展开,可点击折叠",颜色 + 朝向双重编码;叶子节点保留灰色实心点、不带方框,视觉上和可点击节点分得很开。
- 列表列宽与间距:横向剩余分配走"fixed 主内容列 + flex 中间列 + fixed 操作列"三段式——check 44 / 地区名称 fixed 240 / 地区id fixed 100 / 层级 min 100 / 上级地区 min 140 / 地区编码 min 120 / 排序 min 80 / 状态 min 100 / 操作 fixed 260,地区名称和地区id 全部 fixed 保持"名称文字贴近 id",操作列改成 fixed 260 后不再吞剩余(之前 min-width 让它在宽屏下膨胀到 400+,按钮组右侧一大片空白),富余宽度改由"层级 / 上级 / 编码 / 排序 / 状态"五列按 min 比例共吞,全屏时每列同步获得呼吸空间、间距更均衡;地区id / 编码 / 排序 / 层级 / 状态五列文字统一居中、数字类启用 tabular-nums 等宽字形;th/td padding 从 10×12 回调到 12×16(列间留白更宽松);表格 min-width 从 1120 提到 1180,与新固定+最小合计匹配。
- 不提供物理删除:地区下游引用面很广——权限项配置、订单折扣规则、各子站学员注册时选择、证书地区可见性、报表维度等,任一环节漏校验都会产生脏数据或历史断层。本期"操作"列去掉"删除"按钮,所有下线动作统一走"停用":新增选择时下拉过滤掉,历史数据仍展示名称,报表口径按支付时刻地区快照不受影响。若确需清数据(如错误新增的测试行)由 DBA 走后台脚本 + 工单审批,不开放业务后台入口。
- 新增子级:省级/市级行显示"新增子级",区县为叶子节点,按钮置灰。新增顶级按钮打开时上级字段为空+层级默认省级。
- 同步机制:初版不做数据导入/导出("批量导入""导出"两颗按钮已从工具栏移除),所有编辑(新增/改名/改编码/停用/启用)都在"草稿态"完成,不会自动生效——工具栏"收起全部"右侧放蓝色 primary 的"同步"按钮 + 橙色 pill badge N 项待同步(每次编辑 +1,同步后归零并切绿)。未点击同步前,各消费端(权限项配置 / 订单折扣规则 / 学员注册地区下拉 / 证书地区可见性 / 报表维度)继续读上一次同步快照,即使管理员在本页改到一半也不会影响正在使用的地区数据。点击"同步"后系统把当前字典 diff 推送到全平台,推送期间消费端仍读旧快照保证业务不断档,推送完成再原子切换;同步动作写操作日志(同步人 / 时间 / 差异条数 / 差异明细前后 hash / 推送结果)。若中途反悔可点"放弃草稿"丢弃未同步变更(下期实现)。
- 消费端下拉:底部固定"⚙ 管理地区"入口(粉色描边示意新加),点击跳转本页;有权限的用户可见,无权限隐藏。
- 地区筛选:原"关键字"纯文本搜索已改为省 → 市 → 区县 三列级联下拉(Cascader)——点击输入框展开面板,第一列展示省级,鼠标悬停省级自动展开第二列(市级),悬停市级展开第三列(区县级),三列联动参照消费端地区选择器的交互模式;单选(非复选框),可只选省、也可只选市、也可只选区县——选中后输入框回显名称并自动触发筛选(展示选中节点及其所有子孙行);输入框同时支持输入关键词模糊搜索,输入时三列切换为"匹配项平铺列表"(按名称或编码匹配),点击即选中并关闭面板;"重置"按钮清空级联选中恢复全量。
- 校验规则:同层级下"名称"唯一;"编码"全局唯一 且必须为 6 位数字——表单输入框 maxlength=6,输入时实时校验(正则 ^\d{6}$),不合规则输入框红边框 + 下方红字提示"地区编码为6位数字"、"保存"按钮按下会被拦截;编码遵循 GB/T 2260 行政区划;名称去除前后空格后长度 1–30 字符。
- 操作日志:新增/编辑/停用/启用均写入操作日志(操作人 / 时间 / 动作 / 目标 / 变更前后),本页只维护数据,日志在"系统设置-操作日志"查看。
- 菜单挂载:本页挂在"系统设置 → 地区管理"作为二级项,"系统设置"支持展开/收起,默认展开且二级仅本项。其他一级菜单(课程/考试/运营/内容/用户/数据统计/子站统计/证书/广告)在此原型页仅呈现一级、不展开二级,避免与目标页抢视觉焦点。
- 工具栏统计:右上角仅保留"省级 X · 市级 X · 区县级 X"三项,按 data-tier 全量统计(含停用),新增后即时刷新(停用不影响总数,本期无删除入口);"共 X 条 / 显示 X 条"合计与视图行数指标已去掉,避免与三项分层数字冗余。
- 待拍板:
- ① 是否需要"变更审批"环节(提交后另一角色审核才生效),还是管理员直接改生效?
- ② 同步策略:走"全量 diff 推送"还是支持"勾选部分同步"?推送 SLA 目标多久?同步失败(消费端不可达 / 权限校验不通过)时的重试与告警口径?
- ③ 消费端下拉里是否允许选到"区县"层级,还是只到"市",需按业务口径确认。