# 城市管理功能需求文档

城市管理属于平台功能，由智慧城科技研发和运营部门维护。城市管理包括全国城市数据浏览和开通城市。其中全国城市数据从统一的全国行政区划数据库读取，仅做浏览使用，不允许进行新增、编辑、删除等操作。开通城市用于管理平台已经上线的地区，为改善用户体验，C端用户在添加小区时只能看到开通城市的数据。

## 名词定义

| 名称     | 定义                                                                                                                                                                                                 |
| ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 省份/直辖市 | 全国23个省份，5个自治区和4个直辖市，2个特别行政区。包括：北京市，天津市，上海市，重庆市，河北省，山西省，辽宁省，吉林省，黑龙江省，江苏省，浙江省，安徽省，福建省，江西省，山东省，河南省，湖北省，湖南省，广东省，海南省，四川省，贵州省，云南省，陕西省，甘肃省，青海省，台湾省，内蒙古自治区，广西壮族自治区，西藏自治区，宁夏回族自治区，新疆维吾尔自治区，香港特别行政区，澳门特别行政区。 |
| 城市     | 特指省份的下级行政区划，如海南省下的海口市，广东省的广州市，北京的北京市。                                                                                                                                                              |
| 地区     | 特指城市下级行政区划，可能是乡镇，也可能是区县，取决于上级城市的级别。如海口市的龙华区，儋州市的那大镇。                                                                                                                                               |

## 全国城市

全国城市功能用于以城市为一行分页列表方式展示城市数据库的全部城市数据，列表支持按城市名称搜索（搜索时需要指定搜索级别为城市）。该功能仅为数据浏览，不做过多介绍。

## 开通城市

开通城市用于显示当前平台已经上线的城市地区，并新增开通城市或修改已经开通的地区。列表展示方式以城市为一行。开通城市的数据需要与全国城市数据分开存储，以不影响全国城市的基础数据。

* 新增开通城市：从全国城市列表点击“开通”即进入开通城市界面，开通城市默认选中该城市的全部地区，可根据实际情况剔除掉平台暂未覆盖的地区。由于C端前端页面是按省、市、区的方式进行操作的，因此一旦某个地区开通，其上级的城市，省份均需要标记为已开通状态。新增开通城市时需要检查所选省份、城市和地区是否已有记录（处于标记为未开通状态），若已有记录则更新数据为已开通状态即可，若无数据则需要新增数据。

* 修改开通地区：当一个城市已经有开通地区时，在开通城市点击更改地区或在全国城市列表点击开通时即进入修改开通地区界面。可以根据实际运营情况增加开通地区或减少开通地区。但该操作必须至少选择一个地区开通。

* 关闭开通城市：如果一个城市退出平台的运营，可以通过关闭该城市（标记城市、地区为未开通状态）。关闭后需要检查城市上级的省份是否还有下级城市处于开通状态，若该省份无任何下级城市处于开通状态，则需要将省份也标记为未开通状态。

## 表单字段说明

| 字段名称 | 字段类型  | 备注                            | 是否必填 |
| ---- | ----- | ----------------------------- | ---- |
| 城市   | Int   | 对应选择城市的ID，数据由前级页面传递过来，表单为只读状态 | 是    |
| 开通地区 | Array | 对应多个选择的开通地区的ID                | 是    |
