Files
shanxia2.0/openspec/changes/dict-management/specs/dict-crud/spec.md
T

3.6 KiB

ADDED Requirements

Requirement: 字典类型分页列表

系统 SHALL 提供字典类型分页列表查询接口,支持按关键词(dict_name 或 dict_type 模糊匹配)搜索,默认排序 order_num ASC, create_time DESC,严格按当前用户 tenant_no 过滤。

Scenario: 查询字典类型列表

  • WHEN 用户请求 GET /api/web/admin/dict-types,携带 page=1, pageSize=10, keyword="bm"
  • THEN 返回当前租户下 dict_name 或 dict_type 包含 "bm" 的字典类型列表,按 order_num 升序、create_time 降序

Scenario: 无关键词查询

  • WHEN 用户请求字典类型列表,不传 keyword
  • THEN 返回当前租户下所有字典类型,分页展示

Requirement: 字典类型新增

系统 SHALL 提供字典类型新增接口,必须校验同一 tenant_no 下 dict_type 的唯一性(排除 del_flag=1),自动填充 tenant_no、create_by、create_dept_id。

Scenario: 新增字典类型成功

  • WHEN 用户提交 dict_name="部门状态"、dict_type="bmzt"
  • THEN 创建成功,返回新记录,dict_type 在当前租户内唯一

Scenario: dict_type 重复

  • WHEN 用户提交已存在的 dict_type(且未被软删除)
  • THEN 返回错误,提示"字典类型编码已存在"

Requirement: 字典类型修改

系统 SHALL 提供字典类型修改接口,允许修改 dict_name、dict_type、order_num、remark、status。修改 dict_type 时 SHALL 校验新编码在同一 tenant_no 下的唯一性。

Scenario: 修改字典类型名称

  • WHEN 用户修改 dict_name 从"旧名称"为"新名称"
  • THEN 更新成功,update_by 自动设置为当前用户

Requirement: 字典类型软删除

系统 SHALL 提供字典类型软删除接口,将 del_flag 设为 1。删除字典类型时 SHALL 同时软删除该类型下所有字典数据。

Scenario: 删除字典类型

  • WHEN 用户删除一个字典类型
  • THEN 该类型 del_flag=1,其下所有 dict_data 的 del_flag 也设为 1

Requirement: 字典数据分页列表

系统 SHALL 提供字典数据分页列表查询接口,按 dict_type 过滤,支持按 dict_label 搜索,默认排序 order_num ASC, create_time DESC,严格按当前用户 tenant_no 过滤。

Scenario: 按字典类型查询数据

  • WHEN 用户请求 GET /api/web/admin/dict-data,携带 dictType="bmzt"
  • THEN 返回该类型下所有字典数据列表

Requirement: 字典数据新增

系统 SHALL 提供字典数据新增接口,自动继承字典类型的 tenant_no,自动填充 create_by、create_dept_id。

Scenario: 新增字典数据

  • WHEN 用户为 dict_type="bmzt" 新增 dict_label="正常"、dict_value="1"
  • THEN 创建成功,tenant_no 与字典类型一致

Requirement: 字典数据修改

系统 SHALL 提供字典数据修改接口,允许修改 dict_label、dict_value、order_num、remark。

Scenario: 修改字典数据

  • WHEN 用户修改某条字典数据的 dict_label
  • THEN 更新成功,update_by 自动设置

Requirement: 字典数据软删除

系统 SHALL 提供字典数据软删除接口,将 del_flag 设为 1。

Scenario: 删除字典数据

  • WHEN 用户删除一条字典数据
  • THEN 该条数据 del_flag=1,不再出现在列表查询中

Requirement: 字典数据下拉查询

系统 SHALL 提供按 dict_type 查询有效字典数据的轻量接口(不分页),用于其他模块的下拉选项。

Scenario: 下拉查询

  • WHEN 前端请求 GET /api/web/admin/dict-data/options?dictType=bmzt
  • THEN 返回该类型下所有有效字典数据的 label+value 列表,用于下拉选项渲染