dict.ts 2.8 KB
import { request } from '@/utils/request'
import type { DictType, DictItem, PageRequest, PageResponse } from '@/types'

// 字典类型相关API

// 获取字典类型列表
export function getDictTypeListApi(): Promise<DictType[]> {
  return request.get('/api/sys/dict/type/list')
}

// 获取字典类型分页列表
export function getDictTypePageApi(params: PageRequest & {
  dictName?: string
  dictType?: string
  status?: number
}): Promise<PageResponse<DictType>> {
  return request.get('/api/sys/dict/type/page', params)
}

// 获取字典类型详情
export function getDictTypeDetailApi(dictId: number): Promise<DictType> {
  return request.get(`/api/sys/dict/type/${dictId}`)
}

// 新增字典类型
export function addDictTypeApi(data: Partial<DictType>): Promise<void> {
  return request.post('/api/sys/dict/type', data)
}

// 更新字典类型
export function updateDictTypeApi(data: Partial<DictType>): Promise<void> {
  return request.put('/api/sys/dict/type', data)
}

// 删除字典类型
export function deleteDictTypeApi(dictId: number): Promise<void> {
  return request.delete(`/api/sys/dict/type/${dictId}`)
}

// 批量删除字典类型
export function deleteBatchDictTypeApi(dictIds: number[]): Promise<void> {
  return request.delete('/api/sys/dict/type/batch', { dictIds })
}

// 刷新字典缓存
export function refreshDictCacheApi(): Promise<void> {
  return request.post('/api/sys/dict/type/refreshCache')
}

// 字典项相关API

// 获取字典项列表
export function getDictItemListApi(dictTypeId: number): Promise<DictItem[]> {
  return request.get('/api/sys/dict/item/list', { dictTypeId })
}

// 获取字典项分页列表
export function getDictItemPageApi(params: PageRequest & {
  dictTypeId?: number
  dictLabel?: string
  dictValue?: string
  status?: number
}): Promise<PageResponse<DictItem>> {
  return request.get('/api/sys/dict/item/page', params)
}

// 获取字典项详情
export function getDictItemDetailApi(dictItemId: number): Promise<DictItem> {
  return request.get(`/api/sys/dict/item/${dictItemId}`)
}

// 新增字典项
export function addDictItemApi(data: Partial<DictItem>): Promise<void> {
  return request.post('/api/sys/dict/item', data)
}

// 更新字典项
export function updateDictItemApi(data: Partial<DictItem>): Promise<void> {
  return request.put('/api/sys/dict/item', data)
}

// 删除字典项
export function deleteDictItemApi(dictItemId: number): Promise<void> {
  return request.delete(`/api/sys/dict/item/${dictItemId}`)
}

// 批量删除字典项
export function deleteBatchDictItemApi(dictItemIds: number[]): Promise<void> {
  return request.delete('/api/sys/dict/item/batch', { dictItemIds })
}

// 根据字典类型获取字典项
export function getDictItemsByTypeApi(dictType: string): Promise<DictItem[]> {
  return request.get(`/api/sys/dict/item/type/${dictType}`)
}