2.1 KiB
2.1 KiB
1. 数据模型
- 1.1 Prisma schema:
dict_type加built_in(Boolean 默认 false),dict_item加built_in(Boolean 默认 false)与color_type(String? 可空) - 1.2 生成并应用 Prisma migration(增量加列,无破坏)
- 1.3 seed 预置 5 个内置字典类型 + 字典项(含 label / color_type / sort,按
(tenantCode, code)与(tenantCode, dictTypeCode, value)幂等 upsert,内置项built_in=true)
2. 后端字典保护与聚合接口
- 2.1 dicts.service:删除内置类型 / 删除内置项 拦截并返回明确错误
- 2.2 dicts.service:修改内置项 value 拦截(label / sort / color_type 放行)
- 2.3 新增
GET /dicts聚合接口(当前租户启用类型 + 启用项,项按 sort 升序) - 2.4 字典 DTO 补充
built_in/color_type字段映射与校验
3. 前端字典机制
- 3.1 新增
src/stores/modules/dict.ts(dicts / loaded / fetch / reset) - 3.2 新增
src/composables/useDict.ts(字典项数组 + tagMap + options 三种视图) - 3.3
layout/default.vue登录后拉取字典;main.ts登出/auth 失效清空字典缓存
4. 组件库 dictCode 支持
- 4.1
src/types/crud.ts:JsonSchemaProperty 增dictCode、TableColumn 增dictCode - 4.2 ty-form / ty-search-form:字段声明
dictCode时自动解析下拉选项(忽略手写 enum/enumNames) - 4.3 ty-table:列声明
dictCode时按字典渲染标签(label + color_type 着色)
5. 页面去硬编码与保护交互
- 5.1 字典管理页:内置类型/项「内置」标记 + value 只读/禁删 + color_type 编辑
- 5.2 用户 / 角色 / 资源 / 组织 / 租户页删除本地
STATUS_MAP/TYPE_MAP/DATA_SCOPE_MAP,改用 dictCode / useDict - 5.3 审计 / 登录日志页删除 success/fail 硬编码映射,改用 dictCode
6. 验证
- 6.1 后端
pnpm build+ 保护规则与GET /dicts冒烟验证 - 6.2 前端
pnpm type-check+pnpm build通过 - 6.3 联调验收:改字典 label 全局生效、内置项 value 受保护、下拉/标签字典驱动渲染