05 — 字典服务

来源:api/personal.ts / api/work.ts
涉及页面:Personal / Work / Guarantor
共 4 个接口(行政区划 / 就业类型 / 行业 / 亲属关系)


业务上下文

字典服务承担三类职责:

  1. 后端 SoT — 后端调整选项不需要前端发版(如新增行业、行政区划调整)
  2. 多端一致 — SA App / Client App / 运营后台共用同一份枚举
  3. 多国扩展 — 字典随国家切换,支持后续扩展到 KE / GH 等

通用约定

所有字典接口出参统一结构:

字段类型说明
codestring业务码(snake_case 或 kebab-case;用于持久化)
labelstring显示文案(按 locale 返回 i18n 文案;UI 直接展示)

字典接口请求方式:

  • 鉴权 token 必填
  • 出参带 etag / version 字段支持客户端缓存
  • 支持 ?locale=en 参数(接口预留多语言扩展)

1. 行政区划字典(States + LGAs)

1.1 States 列表

业务描述:拉取 NG 全部 36 州 + FCT。

触发场景:Personal 页 mount。

入参:无

出参:array<{ code, name }>

字段类型说明
codestring州代码(如 lagos / fct / kano
namestring州名(如 Lagos / Abuja FCT

1.2 LGAs 列表(按 State 级联)

业务描述:按州 code 拉取该州的 LGA(Local Government Area)列表。

触发场景:Personal 页用户选完州后;切换州时重新拉。

入参

字段类型必填说明
state_codestring州代码(从 1.1 接口出参取)

出参:array<{ code, name, state_code }>

字段类型说明
codestringLGA 代码
namestringLGA 名
state_codestring所属州 code(回显,便于前端校验)

关键异常

异常码含义前端处理
STATE_NOT_FOUND入参 state_code 不存在toast + 清空当前州选择

2. 就业类型字典

业务描述:拉取就业类型枚举。

触发场景:Work 页 mount。

入参:无

出参:array<{ code, label }>

选项:

codelabel
salariedSalaried
self-employedSelf-employed
business-ownerBusiness Owner
civil-servantCivil Servant
studentStudent
unemployedUnemployed
othersOthers

3. 行业字典

业务描述:拉取行业枚举。

触发场景:Work 页 mount。

入参:无

出参:array<{ code, label }>

选项(按字母顺序):

codelabel
agricultureAgriculture
banking-financeBanking & Finance
constructionConstruction
educationEducation
healthcareHealthcare
hospitalityHospitality & Tourism
it-technologyIT & Technology
manufacturingManufacturing
oil-gasOil & Gas
public-sectorPublic Sector / Government
real-estateReal Estate
retail-tradeRetail / Trade
telecommunicationsTelecommunications
transport-logisticsTransport / Logistics
othersOthers

4. 亲属关系字典

业务描述:拉取紧急联系人关系枚举。

触发场景:Guarantor 页 mount。

入参:无

出参:array<{ code, label }>

选项:

codelabel
parentParent
spouseSpouse
siblingSibling
friendFriend
colleagueColleague
otherOther

范围边界

以下枚举由前端 hard code,不在本字典服务范围(选项稳定、跨国差异小):

  • 性别 / 婚姻 / 子女数 / 宗教 / 教育 / 居住类型 / 还款频率