feat(字典管理): 新增字典管理功能及相关基础设施

- 新增字典管理页面,支持字典项的增删改查
- 添加 pinia-plugin-persistedstate 依赖,实现状态持久化
- 创建字典相关的 API 类型定义和服务接口
- 实现字典数据存储模块,支持字典数据的缓存和复用
- 添加 useDict 组合式函数,方便组件中使用字典数据
- 在题目分类和比赛创建模块中使用字典数据替代硬编码选项
- 优化分类树组件,添加拖拽手柄和题目类型选择
This commit is contained in:
2026-01-30 17:45:46 +08:00
parent b39761d58e
commit e1a19c48e0
21 changed files with 678 additions and 16 deletions

View File

@ -0,0 +1,59 @@
import { request } from '../request'
/** Get dictionary list */
export function getDictionaryList(roomID?: number) {
return request<Api.Common.CommonResponse>({
url: '/Base/ActivityMain/GetDictionaryList',
method: 'get',
params: {
RoomId: roomID,
},
})
}
/** 新增字段项目 */
export function addOrUpdateDictionary(data: Api.Dictionary.AddOrUpdateParams) {
return request({
url: '/Base/ActivityMain/AddOrUpdateDictionary',
method: 'post',
data,
})
}
/** Delete dictionary */
export function deleteDictionary(DicID: number) {
return request({
url: `/Base/ActivityMain/DeleteDictionary/?DicID=${DicID}`,
method: 'post',
data: { DicID },
})
}
/** 根据字典ID查询字典类型 */
export function getDictionaryListUITypeByDicID(dicID: number) {
return request<Api.Common.CommonResponse>({
url: '/Base/ActivityMain/GetDictionaryListUITypeByDicID',
method: 'get',
params: {
DicID: dicID,
},
})
}
/** 根据字典ID新建下面的字典类型 */
export function addOrUpdateDictionaryUIType(data: Api.Dictionary.AddOrUpdateDictionaryUITypeParams) {
return request({
url: '/Base/ActivityMain/AddOrUpdateDictionaryUIType',
method: 'post',
data,
})
}
/** 删除字典项 */
export function deleteDictionaryItem(DicUIID: number) {
return request({
url: `/Base/ActivityMain/DeleteDictionaryUIType/?DicUIID=${DicUIID}`,
method: 'post',
data: { DicUIID },
})
}